2009-12-20 3 views
4

J'essaie d'utiliser GDB et KDEvelop pour déboguer une application console sous Knoppix VM. KDevelop et GDB ne se cassent pas à mes points d'arrêt. Je suppose que c'est parce qu'ils n'ont pas de symboles de débogage.Comment générer des symboles de débogage avec Makefile for C? [Linux]

Si je me trompe, comment dois-je changer mon Makefile pour les créer? Peut-être que le problème est ailleurs?

Cordialement, Ariel

Répondre

11

Inclure -g dans les drapeaux envoyés au compilateur et éditeur de liens. Les variables par défaut pour cela sont respectivement CFLAGS et LDFLAGS.

La deuxième étape: exclure -s de drapeaux (-s signifie bande )

+1

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. –

+1

Connaissance du culte de la cargaison, je suppose. À un moment donné, j'ai utilisé un linker qui devait être dit * pas * de jeter les symboles de débogage ... – dmckee

4

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

gcc -g -o (outputname) (source files...) 
gdb outputname 

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

0

L'exemple complet serait:

CFLAGS =-g 

all: program.o 
    gcc -o program program.o 

Le ici CFLAGS est appliqué à la fois le compilateur et l'éditeur de liens.

Questions connexes