2012-02-12 13 views
66

Continuo a ricevere questo messaggio di errore quando si tenta di aggiungere un punto di interruzione in gdb.gdb: "Nessuna tabella di simboli viene caricata"

ho usato questi comandi per compilare:

gcc -g main.c utmpib2.c -o main.o 
and: 
cc -g main.c utmpib2.c -o main.o 
and also: 
g++ -g main.c utmpib2.c -o main.o 

Ho anche provato "-ggdb" invece di "-g" e ho ancora ottenere quel messaggio di errore.

ho quindi eseguire gdb:

$gdb 

In gdb:

(gdb)exec-file main.o 
(gdb)break 59 
No symbol table is loaded. Use the "file" command. 
+3

'-o main.c'? Devi controllare le opzioni del compilatore. In ogni caso, non sarebbe questo clobber 'main.c'? – FatalError

+0

Oh intendevo main.o. L'ho aggiornato. Ho provato anche a usare "-ggdb" e mi sta ancora dando lo stesso problema. – user994165

+0

Mostraci esattamente come stai invocando gcc e gdb. Copia-incolla per evitare qualsiasi erosione. –

risposta

46

Prima di tutto, quello che hai è un programma completamente compilato, non un file oggetto, in modo da cadere l'estensione .o. Ora, fai attenzione a ciò che dice il messaggio di errore, ti dice esattamente come risolvere il tuo problema: "Nessuna tabella dei simboli è stata caricata Utilizzare il comando" file "."

(gdb) exec-file test 
(gdb) b 2 
No symbol table is loaded. Use the "file" command. 
(gdb) file test 
Reading symbols from /home/user/test/test...done. 
(gdb) b 2 
Breakpoint 1 at 0x80483ea: file test.c, line 2. 
(gdb) 

Oppure basta passare il programma sulla riga di comando.

$ gdb test 
GNU gdb (GDB) 7.4 
Copyright (C) 2012 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 
[...] 
Reading symbols from /home/user/test/test...done. 
(gdb) b 2 
Breakpoint 1 at 0x80483ea: file test.c, line 2. 
(gdb) 
98

È necessario aggiungere un parametro aggiuntivo -g, che genera informazioni di debug a livello di origine. Sembrerà:

gcc -g prog.c 

Successivamente è possibile utilizzare gdb in modo comune.

+15

Nel mio caso, questa risposta ha risolto il problema per me, mentre la risposta accettata non ha fatto differenza. – frankster

+4

Lavorando anche per me .. – kapilddit

7

Ho lo stesso problema e ho seguito questo Post, ha risolto il mio problema.

Seguire i seguenti 2 passaggi:

  1. assicurarsi che il livello di ottimizzazione è -O0
  2. Aggiungi -ggdb bandiera durante la compilazione del programma

Buona fortuna!

Problemi correlati