2012-02-12 32 views
66

Sigo recibiendo este mensaje de error al intentar agregar un punto de interrupción en gdb.gdb: "No se ha cargado ninguna tabla de símbolos"

he utilizado estos comandos para compilar:

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 

También probé "-ggdb" en lugar de "-g" y sigo teniendo ese mensaje de error.

luego ejecuto GDB:

$gdb 

En GDB:

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

'-o main.c'? Debes verificar tus opciones de compilación. ¿No sería ese clobber 'main.c' de todos modos? – FatalError

+0

Oh, quise decir main.o. Lo actualicé Intenté también usar "-ggdb" y todavía me está dando el mismo problema. – user994165

+0

Muéstranos exactamente cómo estás invocando gcc y gdb. Copiar y pegar para evitar errores. –

Respuesta

46

En primer lugar, lo que tienes es un programa totalmente compilado, no un archivo de objeto, por lo que abandonará la extensión .o. Ahora, preste atención a lo que dice el mensaje de error, le dice exactamente cómo solucionar su problema: "No se carga la tabla de símbolos. Utilice el comando" archivo "."

(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) 

O simplemente pase el programa en la línea de comandos.

$ 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

Tiene que agregar el parámetro adicional -g, que genera información de depuración de nivel de fuente. Se verá así:

gcc -g prog.c 

Después de eso, puede usar gdb de manera común.

+15

En mi caso, esta respuesta resolvió el problema para mí, mientras que la respuesta aceptada no hizo diferencia. – frankster

+4

Trabajando para mí también ... – kapilddit

7

Tengo el mismo problema y seguí este Post, resolvió mi problema.

Siga los siguientes 2 pasos:

  1. Asegúrese de que el nivel de optimización es -O0
  2. Añadir -ggdb bandera al compilar su programa

Buena suerte!

Cuestiones relacionadas