2012-03-25 5 views
2

Ich habe einen Win32-Core-Dump (voller Dump, mit Speicher) eines Prozessabsturzes, der durch eine Heap-Beschädigung verursacht wurde. Ich habe volle Symbole und Quellen, also ist das Öffnen des Dumps im Debugger kein Problem.Programmatisch Speicher aus Win32-Dump-Datei lesen

Ich habe Probleme beim Auffinden bestimmter Werte im Speicher, und die Suche durch alle Datenstrukturen in VS Watch-Fenstern ist problematisch (zu viele, um durchzulaufen).

Gibt es eine Möglichkeit, auf den Speicher programmgesteuert zugreifen zu können?

Als ein einfaches Beispiel möchte ich eine Adresse in den gedumpten Speicher finden, die eine bestimmte andere Adresse enthält. Ich kann es später komplizieren, wenn ich dieses grundlegende Beispiel habe.

Antwort

4

Sie können die Dump-Datei in den Windbg-Debugger laden. Windbg has a miniature scripting language können Sie verwenden, um Vorgänge programmgesteuert zu fahren. Oder Sie können einen Windbg debugger extension schreiben, wenn der Algorithmus, den Sie wollen, besonders kompliziert ist.

+0

Danke für diese. Der erste Link demonstriert das Debuggen einer .NET-Anwendung. Sind diese beiden Links auch für nativen Code relevant? (Ich habe vergessen zu erwähnen, es ist ein Core Dump von nativem Code) – Asaf

+1

Die Skriptsprache gilt auch für natives Debugging; Sie haben nur ein verwaltetes Beispiel verwendet. –