Debuggen auf Windows 98: Get Codezeile von EIP
-
12-10-2019 - |
Frage
Ich bin Codierung in Windows 98 (DOS-Modus) und mein Programm abstürzt schlecht. Ich kann den Absturz reproduziert ganz gut, aber meine normalen Debugging-Tricks (Stack-Trace, printf die ganze Sache den Absturz zu isolieren) scheitern, weil die Kombination von Grafikmodus (VBE), DOS-Modus und Interrupt-Behandlung ist offensichtlich nicht das, was GDB war gemacht für.
Ich habe versucht, Teile meines Code zu kommentieren, das Problem zu isolieren, aber ich kann den Code Stelle des Absturzes nicht genau verfolgen.
So kann ich nur bekommen, ist eine Reihe von Registern. Gibt es eine Möglichkeit, eine Zeile Code aus den Registern (wie EIP) abrufen? Ich bin Codierung in C.
Lösung
Nach einigen googeln, fand ich einige GDB Dokumentation mit diesem:
Info-Symbol Adr
Mit diesem Befehl scheint die nächste Sache, die ich einen Funktionsnamen bekommen von einer Adresse finden. Es wird nicht die genaue Zeile Code geben, aber es ist besser als nichts.