2009-02-24 4 views
0

Je voudrais comprendre comment les débogueurs symboliques fonctionnent. Qu'est-ce que la table de symboles de débogage et comment elle facilite le débogage au niveau de la source. Je suis tout à fait inconscient des actions derrière les scènes de débogueurs ... ce qui se passe réellement quand je fournis l'option '-g' à gcc, ce qui est écrit dans le fichier d'objet et de telles subtilités. Je serais heureux si la communauté SO peut expliquer et diriger moi vers des sources où je peux obtenir plus d'informationsComprendre le Débogueur Symbolique

Répondre

2

Les fichiers de symboles sont juste une liste de toutes les variables et fonctions globales définies, ainsi que leurs décalages depuis le début du module . Il a également une liste de toutes les structures et décrit leurs champs. De cette façon, lorsque GDB/WinDbg se charge, il est capable de regarder EIP (instruction en cours) et de mapper l'adresse à quelque chose comme (SomeFunc + 0x25). Bien sûr, la plupart des symboles ont également les informations de ligne codées, donc il peut aller plus loin et dire, "SomeFunc + 0x25 est le plus proche de foo.cpp ligne 57".

0

Consultez la spécification DWARF Debugging pour une description détaillée de toutes les informations de débogage générées par gcc et comment le débogueur s'en sert.

DWARF 3 Debugging Specification