dbxtool su Linux a 64 bit non viene caricato la versione a 64 bit di dbx?
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?
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.