gdb: “Pas de table des symboles est chargé”
Je reçois ce mesage d'erreur lorsque vous essayez 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 je reçois toujours ce message d'erreur.
J'exécute ensuite gdb:
$gdb
Dans gdb:
(gdb)exec-file main.o
(gdb)break 59
No symbol table is loaded. Use the "file" command.
- Oh je voulais principal.o. J'ai mis à jour il. J'ai essayé aussi en utilisant "-ggdb" et il est encore de me donner le même problème.
- Nous montrer exactement comment êtes-vous en invoquant gcc et gdb. Copier-coller pour éviter toute erors.
- J'ai mis à jour mes commandes. C'est vraiment bizarre. Il a juste commencé à travailler. Je sais auparavant, j'étais l'accès à l'aide de gdb "gdb une."et je recevais un message d'erreur sur un.non existante ou quelque chose. Puis je suis passé à la "exec-fichier". Maintenant, j'ai essayé avec un.et il dit: "Cette GDB a été configuré comme "i486-linux-gnu" " et les points d'arrêt peuvent être définies.
- oh bah j'étais en précisant le mauvais fichier un.out. J'ai suivi le long d'un gdb tutoriel sans penser à changer le nom du fichier à ma propre.
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, ce que vous avez est pleinement un programme compilé, pas un fichier de l'objet, alors déposez la
.o
extension. Maintenant, faites attention à ce que le message d'erreur dit, il vous dit exactement comment faire pour résoudre votre problème: "Pas de table des symboles est chargé. Utiliser le menu "fichier" commande."Ou tout simplement passer le programme en ligne de commande.
Vous devez ajouter un paramètre supplémentaire -g, ce qui génère au niveau de la source des informations de débogage. Elle ressemblera:
Après cela, vous pouvez utiliser gdb de façon commune.
J'ai le même problème et j'ai suivi ce Post, il a résolu mon problème.
Suivre ces 2 étapes:
-O0
-ggdb
drapeau lors de la compilation de votre programmeBonne chance!
Chaque fois que
gcc
sur la compilation de la machine etgdb
sur la machine d'essai ont différentes versions, vous pouvez faire face debuginfo format incompatibilité.Pour corriger cela, essayez de la dégradation de l'debuginfo format:
Ou d'un match
gdb
à lagcc
que vous utilisez.