2009-12-15 15 views

risposta

21

comando gdb È possibile utilizzare

Current source file is a.c 
Compilation directory is /home/user/test 
Located in /home/user/test/a.c 
Contains 17 lines. 
Source language is c. 
Compiled with DWARF 2 debugging format. 
Includes preprocessor macro info. 
+0

dove gdb memorizza questa posizione del codice sorgente? È nell'eseguibile stesso? – suresh

+1

Nell'eseguibile stesso creato con informazioni di debug. –

+0

Se GDB memorizza già le informazioni in eseguibile, perché ha bisogno di nuovo l'origine? – ernesto

1

Utilizzare il gdb "Mostra directory" di comando per vedere il percorso di ricerca di origine.

4

uso

(gdb) show directories 

se non si sa dove queste directory vengono impostate di controllo nella vostra .gdbinit se ci sono dichiarazioni come

directory /path/to/source 

vedi anche this other SO Thread about gdb

2

Il il binario è probabilmente compilato con "-g" - cioè il debugging.

+1

Ciò non significa che la fonte sia compilata nel file binario. –

+1

Ma significa che vengono mantenuti i riferimenti alla fonte originale. Ho provato questo sul mio sistema e funziona. – diciu

5

Queste informazioni vengono mantenute in formato binario nel formato DWARF2. Quindi, per vedere le informazioni di DWARF2, è possibile utilizzare l'utility dwarfdump. Le informazioni necessarie sono conservate nel campo DW_AT_comp_dir.

Problemi correlati