Je continue à recevoir ce message d'erreur en essayant d'ajouter un point d'arrêt dans gdb.
J'ai utilisé ces commandes pour compiler:
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
J'ai aussi essayé "-ggdb" au lieu de "-g" et j'obtiens toujours ce message d'erreur.
J'exécute alors gdb:
$gdb
En gdb:
(gdb)exec-file main.o
(gdb)break 59
No symbol table is loaded. Use the "file" command.
Tout d’abord, vous disposez d’un programme entièrement compilé, et non d’un fichier objet; supprimez donc le fichier .o
_ extension. Maintenant, faites attention à ce que le message d'erreur dit, il vous dit exactement comment résoudre votre problème: "Aucune table de symboles n'est chargée. Utilisez la commande "fichier" . "
(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)
Ou passez simplement le programme en ligne de commande.
$ 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)
Vous devez ajouter un paramètre supplémentaire -g, qui génère des informations de débogage au niveau source. Cela ressemblera à:
gcc -g prog.c
Après cela, vous pouvez utiliser gdb de manière courante.
J'ai le même problème et j'ai suivi ceci Post , cela a résolu mon problème.
Suivez les 2 étapes suivantes:
-O0
-ggdb
flag lorsque vous compilez votre programmeBonne chance!
Chaque fois que gcc
sur la machine de compilation et gdb
sur la machine de test ont versions différentes, vous pouvez être confronté à incompatibilité du format debuginfo.
Pour résoudre ce problème, essayez de rétrograder le format debuginfo:
gcc -gdwarf-3 ...
gcc -gdwarf-2 ...
gcc -gstabs ...
gcc -gstabs+ ...
gcc -gcoff ...
gcc -gxcoff ...
gcc -gxcoff+ ...
Ou associez gdb
au gcc
que vous utilisez.