Wie bekomme ich einen crash-dump
Ich brauche, um einen crash-dump aus einem Programm. Wie bekomme ich es?
Das Programm ist in C# geschrieben. Was genau ist ein crash-dump? Wann wird es erstellt? Wo ist es gespeichert?
Wie kann ich es Lesen?
- OS? Plattform? Sprache?
- Meinst du, dass Sie benötigen, um erstellen Sie eine dump, wenn die Anwendung abstürzt, oder tun Sie nur brauchen, um einen memory-dump einer Laufenden Anwendung? Denn die beiden sind ganz unterschiedlich erreicht.
- blogs.msdn.com/b/debugger/archive/2009/12/30/... - Schön erklärt!
- Mögliche Duplikate von Wie finde ich einen guten crash-dump .NET?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Sie sagen C# ich nehme an, Sie verwenden die Windows-Plattform.
Einem crashdump, oder nur dump, ist das vollständige Speicherabbild und andere damit zusammenhängende system info eines Prozesses an einem bestimmten Punkt in der Zeit. Dumps können verwendet werden, um debug-Programm abstürzt, hängt, Speicher-und Ressourcenlecks, und wahrscheinlich noch mehr Probleme habe ich hier nicht aufgeführt.
In die Falle stürzt ab und hängt das erste Stück der Daten, die Sie möchten, erhalten einen crash-dump wird der callstack. Dieser gibt den Punkt an, der zu einem Absturz oder der Punkt, an dem ein Vorgang blockiert und kehrte nie zurück, so dass das Programm sitzt und nichts tut.
Für Ressourcen-Lecks mehrere Speicher-dumps des Prozesses gesammelt werden können über einen Zeitraum von Zeit und untersucht werden, um zu sehen, welche Objekte im Speicher wachsen die meisten. Dies kann helfen, einzugrenzen, welche Teile des Codes verursacht das Leck. Erfahren Sie mehr über die debugging-spezifische Fragen empfehle ich dieser blog.
Gibt es ein paar Möglichkeiten, um eine Speicherabbilddatei erfasst.
Mit procdump Sie können einfach tun:
Das Ergebnis dieses Befehls wird ein vollständiges Speicherabbild von YourProcessName.dmp geschrieben c:\ . The-ma wechseln, gibt dumping ein komplettes Speicher-image. Wenn Sie das Debuggen von Abstürzen oder hängen, Sie können wahrscheinlich Weg erhalten, ohne den ma wechseln. Halten Sie im Verstand ohne die vollständige memory dump, wenn Sie gehen, um Daten zu untersuchen Strukturen, die Sie wahrscheinlich nicht haben, gültige Daten. Ohne die vollständige memory dump haben Sie noch die callstack-Daten, das ist oft gut genug für Abstürze und freezes. Ich normalerweise Fehler auf der Seite der Plattenplatz ist Billig, so sammle die vollständigen dump.
Procdump wird auch automatisch dumps in Zeitintervallen oder wenn eine bestimmte Bedingung erfüllt ist. Lesen Sie die Dokumentation unter dem link oben für mehr Infos. Einen Schalter würde ich empfehlen, sich
-e
.Statt zu schreiben das Speicherabbild sofort wird es nur schreiben wenn Ihr Programm abstürzt.
Mit Visual Studio 2010 können Sie den Prozess mit dem debugger ein, und speichern Sie eine dump-Datei. (Halten Sie im Verstand, wenn Sie die F5-Taste das Programm Debuggen von Visual Studio automatisch Hinzugefügt). Wenn Ihr Programm im "Pause-Zustand" (Haltepunkt, nicht behandelte Ausnahme, Absturz) die
Debug
Menü, haben Sie die option, umSave Dump As...
. Dann können Sie speichern, die dump-wo Sie möchten.Da Sie erwähnten C# sind Sie sehr wahrscheinlich das sammeln von managed-dump-Dateien. Der einfachste Weg ist die Verwendung von Visual Studio 2010. Öffnen Sie einfach das dump-Datei, die Sie erstellt, wie Sie jede andere Datei und mit dem debugging beginnen.
Jedoch, wenn das nicht eine option, können Sie immer verwenden, VS2008 oder WinDbg mit dem SOS-Erweiterungen. Ich empfehle Visual Studio 2010, obwohl als SOS-Erweiterungen und WinDbg im Allgemeinen eine ziemlich steile Lernkurve. Erfahren Sie mehr über SOS-check-out dieser MSDN-Artikel hier und hier.
Einem anderen Grund empfehle ich die Verwendung von Visual Studio oder procdump ist, die Sie sammeln wird die dump-Datei, die Sie erwarten. Ich empfehle Lenkung frei von Task-Manager "Create Dump-Datei Tool". Der Grund dafür ist, es sammelt 64bit-dumps von 32-bit-Prozesse, die übermäßig schwierig zu Debuggen.
Unter Windows XP können Sie erstellen Sie eine dump-Datei, die mit diesem Dienstprogramm:
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e089ca41-6a87-40c8-bf69-28ac08570b7e&displaylang=en
Einmal installiert durchsuchen, um das Installationsverzeichnis und die ausführen
der Befehlszeile aus, wobei PID die PID des Prozesses, den Sie wollen, um einen crash-dump (Sie finden diese im task-manager, aber Sie könnten es brauchen, um die Spalte hinzuzufügen, um die standard-Ansicht).
Diese Datei kann dann in Visual Studio geöffnet werden - Sie müssen nur sicherstellen, dass Sie die Symbole gebaut.
In Windows 7 einfach Rechtsklick auf den Prozess im Task-Manager und wählen Sie "Create Dump File"
ADPlus Verwenden. Es kommt mit den Debugging Tools für Windows.
Es werden Ordner erstellen von crash-dumps unter Ihr home-Verzeichnis. Sie können analysieren Sie mit WinDbg danach.
Lukas, einen crash-dump ist eine ganze Tüte von Daten in Bezug auf den status Ihrer Bewerbung im moment ist der crash passiert ist, dump es bedeutet, zu erfassen alle diese Informationen irgendwo, in der Regel in einer text-Datei.
einen grundlegenden Ansatz ist, melden Sie den ganzen stacktrace, wenn eine Ausnahme passiert, so könnte man untersuchen, später und sehen, welche Methode versagt hat und geworfen die Ausnahme, was die Werte der parameter waren und so weiter. Dies ist nicht wirklich ein crush dump, aber viel hilft in vielen Fällen.
Es wurde etwas entwickelt, die vor kurzem von MS über crash dumps und die Anwendung stürzt ab, ich glaube es war im Zusammenhang mit Windows 7 eigentlich...
finden Sie hier: Recovery-Anwendung und Starten Sie
http://msdn.microsoft.com/en-us/library/cc948909(v=vs. 85).aspx
Können Sie auch versuchen, mit WinDbg
http://www.windbg.org/
Einen crash-dump ist, wenn der Inhalt der RAM-Speicher und bestimmter Teile des Prozessors sind in eine Datei kopiert. Diese Datei wird erstellt, am kritischen Punkt ist ein Fehler und kann verwendet werden, um Debuggen das problem.
Dieser arbeitete für mich in der Vergangenheit. Es ist ein Tastatur-shortcut zum crash dump " in windows.
http://vinaytechs.blogspot.com/2010/01/how-to-get-crash-or-hang-dump.html