2016-05-31 20 views
0

Ich muss die Binärdatei CrashDump.dmp von C# lesen. Wenn ich WinDbg benutze, kann ich die Datei lesen und den Inhalt sehen, aber ich möchte die GUI nicht benutzen, weil wir automatisch mehrere Dateien analysieren wollen.Analysiere einen Absturzspeicherauszug (.dmp) von .NET

Ich möchte in der Lage sein, das gleiche von C# zu tun. Es wäre gut, wenn es eine API für den Fall gibt.

+0

Abgesehen von der Antwort, wenn Sie rein C# verwenden möchten und keine mdbg oder was auch immer Sie auf diesen Hack beziehen können, habe ich einige Zeit zurück geschrieben https://github.com/blabberer/chashdbg – blabb

Antwort

2

Sie können cdb anstelle von WinDbg verwenden und ein WinDbg-Skript ausführen. In diesem Skript können Sie Erweiterungen wie SOS oder PyKd (Python) verwenden, um die Aufgabe zu erledigen. Eine solche Lösung würde nicht einmal C# -Code erfordern. Dies funktioniert sehr gut für Kernel-Dumps oder Dump-Dateien von nativen Anwendungen.

Es ist auch möglich, einen Debugger in C# unter Verwendung der CLR managed debugger engine zu erstellen, die auch als Nuget package verfügbar ist. Beachten Sie, dass sich dies auf .NET-Anwendungen konzentriert. Sie werden wahrscheinlich nicht so gute Ergebnisse für native Anwendungen oder Kernel-Dumps erhalten.

Ich habe das folgende Tutorial gefunden: Writing an automatic debugger in 15 minutes, das ein guter Ausgangspunkt für Sie sein könnte.

+0

FYI: Siehe hier für ein mögliches Problem, das Gedächtnis analysiert: http://stackoverflow.com/questions/37624824/reading-objects-from-memory-with-mdbgeng –