Das Verständnis Symbolic Debugger
-
06-09-2019 - |
Frage
Ich möchte wissen, wie symbolischen Debugger arbeiten ?. Was ist Debug-Symboltabelle und wie es erleichtert Source-Level-Debugging. Ich bin ziemlich blind für die hinter den Kulissen Aktionen von debuggers..what passiert eigentlich, wenn ich ‚-g‘ Option gcc bieten, was geschrieben wird, Datei und solche Feinheiten zu widersprechen. Ich würde mich freuen, wenn SO kann Gemeinschaft erklären und lenken mich auf Quellen, wo ich weitere Informationen erhalten kann
Lösung
Symboldateien sind nur eine Liste aller definierten globalen Variablen und Funktionen, sowie deren Offsets vom Anfang des Moduls. Es hat auch eine Liste aller Strukturen und beschreibt ihre Felder.
So, wenn GDB / WinDbg Lasten auf, es in der Lage ist, bei EIP (aktueller Anweisung) suchen und ordnen Sie die Adresse auf so etwas wie (someFunc + 0x25). Natürlich auch die meisten Symbole der Zeileninformationen als auch verschlüsselt haben, so kann er einen Schritt weiter und sagt, gehen „someFunc + 0x25 am nächsten Zeile 57 bis foo.cpp“.
Andere Tipps
Überprüfen Sie die DWARF Debug-Spezifikation für eine eingehende Beschreibung aller Debug-Informationen, die von gcc und wie der Debugger nutzt es.