11
votes

Comment générer des symboles de débogage avec Makefile pour C? [Linux]

J'essaie d'utiliser gdb et kdevelop pour déboguer une application de console sous Knoppix VM. Kdevelop et GDB ne cassent pas à mes points d'arrêt. Je soupçonne que c'est parce qu'ils n'ont pas de symboles de débogage.

Si je suis correct, comment dois-je changer de maquillage pour créer ceux-ci. Peut-être que le problème est ailleurs?

Cordialement, Ariel


0 commentaires

3 Réponses :


20
votes

Inclure -g dans les indicateurs envoyés sur le compilateur et la liaison. Les variables par défaut pour cela sont cflags et ldflags respectivement.

La deuxième étape: exclure -s à partir d'indicateurs ( -s signifie bande )


2 commentaires

L'option "-g" doit seulement être donnée au compilateur via la macro CFLAGS. Il n'est pas nécessaire de l'avoir dans la macro LdFlags.


Je suppose que la connaissance du culte de la cargaison. À un moment donné, j'ai utilisé un litige qui devait être dit pas de jeter les symboles de débogage ...



6
votes

Si vous êtes capable de voir la source et de définir le point d'arrêt, vous avez probablement des symboles de débogage établis. Cependant, la séquence habituelle est la suivante: xxx

donnez plus de détails sur ce que vous faites et quels messages vous voyez et nous pouvons être plus précis.


0 commentaires

3
votes

L'exemple complet serait: xxx

le cflags est appliqué sur le compilateur et la lieur.


1 commentaires

Ce n'est pas vrai. Dans votre exemple -g n'est appliqué que dans l'étape de compilation. En effet, la compilation arrive à travers une règle implicite de faire qui crée programme.o à partir de programme.c (sans programme.c jamais mentionné explicitement Dans le makefile. La règle implicite utilise CFLAGS . Toutefois, la règle explicite de l'étape de liaison est exécutée comme indiqué - ainsi -g est pas appliqué lors de la liaison (AFAIK, il ne faut pas avec GCC de toute façon).