test - gdb: "No se carga ninguna tabla de símbolos"
gdb tutorial (4)
Sigo recibiendo este mensaje de error cuando intento agregar un punto de interrupción en gdb.
He usado 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 recibiendo 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.
Debe agregar el parámetro extra -g, que genera información de depuración a nivel de fuente. Se verá así:
gcc -g prog.c
Después de eso puedes usar gdb de manera común.
En primer lugar, lo que tienes es un programa completamente compilado, no un archivo objeto, así que descarta 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 ninguna tabla de símbolos. Use 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 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)
Siempre que gcc
en la máquina de compilación y gdb
en la máquina de prueba tengan diferentes versiones , es posible que se encuentre con una incompatibilidad de formato de debuginfo .
Para solucionarlo, intente degradar el formato de debuginfo:
gcc -gdwarf-3 ...
gcc -gdwarf-2 ...
gcc -gstabs ...
gcc -gstabs+ ...
gcc -gcoff ...
gcc -gxcoff ...
gcc -gxcoff+ ...
O gdb
coincidir gdb
con el gcc
que está usando.
Tengo el mismo problema y seguí este Post , resolvió mi problema.
Siga los siguientes 2 pasos:
- Asegúrese de que el nivel de optimización sea
-O0
- Agrega el indicador
-ggdb
al compilar tu programa
¡Buena suerte!