Domanda

Sono utilizzando la versione Linux di dbxtool per eseguire il debug di un programma a 64 bit chiamato frankie:

file ../support/frankie
../support/frankie: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.4, dynamically linked (uses shared libs), for GNU/Linux 2.6.4, not stripped

Quando si tenta di caricare l'eseguibile all'interno dbxtool, ottengo un messaggio "architettura supportato", che presumo significa che la versione a 32 bit di dbx è caricato:

(dbx) debug ~/support/frankie
dbx: ~/support/frankie has unsupported architecture or file format

Tuttavia, se corro dbx dalla linea di comando, è in grado di caricare il file, presumibilmente caricando automaticamente la versione a 64 bit del debugger.

(dbx) debug ../support/frankie
Reading frankie
Reading ld-linux-x86-64.so.2
Reading libm.so.6
Reading libncurses.so.5
Reading libc.so.6
Reading libdl.so.2

Non riesco a trovare alcuna opzione che avrebbe costretto dbxtool di utilizzare il 64, ma debugger, in realtà l'unico che posso trovare è quello di forzare l'utilizzo del debugger a 32 bit in un ambiente a 64 bit!

qualche suggerimento?

È stato utile?

Soluzione

Un lavoro intorno è quello di lanciare dbxtool con il programma per eseguire il debug nella riga di comando. per es.

dbxtool buggyprogram buggyparameter

un altro lavoro intorno è quello di terminare la sessione dbx che carica automaticamente e aprirne uno nuovo.

Se si ottiene l'errore l'architettura non supportata connessione a un processo, eseguire il debug di un file, quindi connettersi al processo, riutilizzando la sessione esistente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top