Comprendre Debugger symbolique
-
06-09-2019 - |
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
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.