Par défaut, gcc
ajoutera une table de symboles à l'exécutable, donc gdb
obtiendra une trace de pile lisible.Quelle est la différence entre les informations de débogage entre gcc avec et sans option "-ggdb1"?
Documentation pour l'option -ggdb1
dans gcc
page man:
Niveau 1 produit un minimum d'informations, assez pour faire backtraces dans certaines parties du programme que vous ne prévoyez pas de débogage. Cela inclut des descriptions de fonctions et de variables externes, mais pas d'informations sur les variables locales et aucun numéro de ligne.
... qui me semble la même chose que simplement appeler gcc
sans aucun argument du débogage. Mais il y a clairement des symboles supplémentaires émis (.debug_frame
, .debug_str
, .debug_loc
).
Alors, quelle est exactement la différence, et y a-t-il un avantage à compiler avec -ggdb1
plutôt que de ne pas simplement supprimer l'exécutable?