GCC-g vs-g3 GDB Drapeau: Quelle est la Différence?
Lors de la compilation de code source C, soit avec gcc ou Clang, je l'utilise toujours la -g
drapeau pour générer des informations de débogage pour gdb.
gcc -g -o helloworld helloworld.c
J'ai remarqué que certaines personnes recommandent -g3
à la place. Quelle est la différence entre le -g
et -g3
les drapeaux? Aussi est-il une différence entre -g
et -ggdb
?
- Je suis venu ici parce que je suis l'aide de quelqu'un d'autre makefile, et la documentation est une bête de commencer à partir. Bonne question sur StackOverflow pour trouver une réponse simple à partir de google.
- Un nombre impressionnant de questions sur soi "couvertes mon la documentation" aussi longtemps que vous êtes prêt à creuser assez loin. Ce n'est pas une raison valable pour rejeter une question.
Vous devez vous connecter pour publier un commentaire.
De la docs:
tl;dr: pour répondre À votre question spécifique,
-g3
"comprend des informations supplémentaires telles que les définitions de macros. Certains débogueurs de soutien macro d'extension lorsque vous utilisez-g3
", tandis que-g
ne pas inclure cette information supplémentaire.Le plus large réponse est que gcc prend en charge quatre niveaux d'informations de débogage, de
-g0
(informations de débogage désactivé) par le biais de-g3
(maximum d'informations de débogage).Précisant
-g
est équivalent à-g2
. Curieusement, le gcc docs dire peu de choses sur ce que les informations-g
/-g2
inclut ou exclut: