Question

Je voudrais comprendre comment fonctionnent les débogueurs symboliques ?. Quels sont la table des symboles de débogage et comment il facilite le débogage au niveau source. Je suis tout à fait inconscient de la derrière les actions de la scène de debuggers..what se passe réellement lorsque je donne l'option -G à gcc, ce qui sera écrit pour objet fichier et ces subtilités. Je serais heureux si SO communauté peut expliquer et me diriger vers des sources où je peux obtenir plus d'informations

Était-ce utile?

La solution

fichiers de symboles sont juste une liste de toutes les variables et les fonctions globales définies, ainsi que leurs compensations dès le début du module. Il dispose également d'une liste de toutes les structures et décrit leurs champs.

De cette façon, lorsque les charges GDB / WinDBg up, il est en mesure de regarder EIP (en cours d'instruction) et la carte l'adresse à quelque chose comme (someFunc + 0x25). Bien sûr, la plupart des symboles ont également les informations de ligne codées ainsi, il peut donc aller plus loin et dire: « someFunc + 0x25 est plus proche de la ligne 57 foo.cpp ».

Autres conseils

Consultez la spécification de débogage NAIN pour une description détaillée de toutes les informations de débogage généré par gcc et comment le débogueur fait usage.

DWARF 3 débogage Spécification

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top