2011-08-26 18 views
6

Sto cercando di utilizzare Eclipse con CDT per eseguire il debug di un binario a 64 bit. Il file binario è costruito al di fuori di Eclipse e funziona correttamente. Avvio il file binario all'esterno di eclipse, quindi tenta di collegarlo al processo utilizzando il tipo di configurazione di debug 'C/C++ Attach to Application'.Eclipse CDT debug che si collega al processo - non in formato eseguibile: formato file non riconosciuto

posso scegliere il processo dalla lista che si apre quando si esegue la configurazione di debug, tuttavia, ottengo il seguente messaggio di errore:

Error in final launch sequence 
Failed to execute MI command: 
attach 22014 
Error message from debugger back end: 
"program.x64": not in executable format: File format not recognized 

Tutto funziona bene se io costruisco per un target i386.

io non sono abbastanza sicuro dove andare con questo, ho letto che potrebbe avere qualcosa a che fare con i parser binari in Eclipse:

This link menzioni parser, e this link descrive un bug con il PE parser che è stato risolto

Sto eseguendo Eclipse Indigo con Eclipse CDT 8.0.0 su Linux x64. Ho provato 'Elf Parser' e 'GNU Elf Parser' sotto project_properties/C++ _ build/settings senza fortuna.

informazioni

File:

hostmachinea:file program.x64 
programs.x64: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped 

GDB e file gdbinit sono le impostazioni di default di Eclipse

risposta

3

Sembra come se il GDB che Eclipse sta usando è stato costruito per i386, e quindi non può eseguire il debug a 64-bit binari. Probabilmente è necessario installare GDB con capacità 64 bit.

Ecco ciò che il messaggio di errore da corrente GDB assomiglia:

$ ./gdb --version 
GNU gdb (GDB) 7.3.50.20110809-cvs 
Copyright (C) 2011 Free Software Foundation, Inc. 
... 
This GDB was configured as "i686-linux". 
... 

$ ./gdb -q /bin/date 
"/bin/date": not in executable format: File format not recognized 

GDB e file gdbinit sono le impostazioni di default di Eclipse

Avete installato la versione a 32 bit o 64 bit di CDT?

1

Nella shell, GDB credo è a 64 bit:

~:gdb --version 
GNU gdb (GDB) 7.0.1 
Copyright (C) 2009 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 
This is free software: you are free to change and redistribute it. 
There is NO WARRANTY, to the extent permitted by law. Type "show copying" 
and "show warranty" for details. 
This GDB was configured as "x86_64-unknown-linux-gnu". 

Data di carico:

~:gdb -q /bin/date 
Reading symbols from /bin/date...(no debugging symbols found)...done. 

Digitando che gdb, e dopo aver messo quel percorso in modo esplicito nella configuraiton di debug in Eclipse , Non ricevo più il messaggio di errore.

Come nota a margine, come si può scoprire quale GDB Eclipse utilizza di default?

Ho scaricato la versione a 64 bit di Eclipse Indigo, che è stata rilasciata con CDT.

Problemi correlati