Dolmetschen-Stacks in Windows Minidumps
Als jemand, der gerade anfängt zu lernen, die Feinheiten der computer Debuggen, für das Leben von mir, ich kann nicht verstehen, wie zu Lesen, die Stack-Text-dump in Windbg. Ich habe keine Ahnung, wo zu beginnen, wie Sie zu interpretieren oder, wie gehen über it. Kann mir jemand die Richtung, um dieser Armen Seele?
ie (die nur dump ich auf der hand habe, mit mir eigentlich)
>b69dd8f0 bfa1e255 016d2fc0 89efc000 00000040 nv4_disp+0x48b94 b69dd8f4 016d2fc0 89efc000 00000040 00000006 nv4_disp+0x49255 b69dd8f8 89efc000 00000040 00000006 bfa1dcc0 0x16d2fc0 b69dd8fc 00000000 00000006 bfa1dcc0 e1e71018 0x89efc000
Ich weiß, das problem ist mit der Nvidia display-Treiber, aber was ich wissen will ist, wie Sie tatsächlich Lesen Sie den Stapel (z.B. was ist b69dd8f4?) :-[
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste, Sie brauchen, um die richtigen Symbole konfiguriert ist. Die Symbole ermöglicht das anpassen von Speicher-Adressen zu Funktionsnamen. Um dies zu tun, müssen Sie erstellen Sie einen lokalen Ordner auf Ihrem Computer, in dem Sie speichern einen lokalen cache der Symbole (zum Beispiel: C:\symbols). Dann müssen Sie die Symbole server-Pfad. Um dies zu tun gehen Sie einfach auf: Datei - > Symbol File Path und geben Sie ein:
Können Sie finden mehr Informationen über, wie man richtig konfigurieren Sie die Symbole hier.
Sobald Sie richtig konfiguriert die Symbole server öffnen Sie die minidump aus: Datei - > Open Crash Dump.
Einmal die minidump eröffnet wird, zeigen Sie auf der linken Seite von der Kommandozeile wird der thread, der ausgeführt wurde, wenn der dump erzeugt wurde. Wenn Sie möchten, um zu sehen, was in diesem thread ausgeführt wurde Typ:
Dies könnte einige Zeit dauern, die ersten, die Sie ausführen, da Sie, um download der notwendigen öffentlichen Microsoft-bezogenen Symbole das erste mal. Sobald alle Symbole heruntergeladen werden Sie erhalten so etwas wie:
Wo:
Möglicherweise sehen Sie auch so etwas wie
Zeigt dies, dass Sie nicht die richtige Symbol für diese DLL, und daher werden Sie nur in der Lage, um zu sehen, die Methode offset.
Also, was ist der callstack?
Stellen Sie sich vor Sie haben diesen code:
In diesem code methode2 grundsätzlich wird eine Exception werfen, da wir versuchen, Division durch 0, und dadurch wird der Prozess zum Absturz zu bringen. Wenn wir eine minidump-wenn dies geschah, würden wir sehen, die folgende Aufrufliste:
Können Sie daraus Folgen die Aufrufliste, die "main" heißt "method1", die dann als "method2", und es ist fehlgeschlagen.
In Ihrem Fall haben Sie diese callstack (was ich denke, ist das Ergebnis der Ausführung "kb" - Befehl).
Die erste Spalte gibt das Untergeordnete Frame-Pointer, die zweite Spalte gibt die Adresse Zurück, der die Methode ausgeführt wird, werden die nächsten drei Spalten zeigen die ersten 3 Parameter die an die Methode übergeben wurden, und der Letzte Teil ist der DLL-name (nv4_disp) und offset von der Methode, die ausgeführt wird (+0x48b94). Da Sie nicht über die Symbole, die Sie nicht in der Lage, um zu sehen, den Namen der Methode. Ich bezweifle, tha NVIDIA bietet öffentlichen Zugriff auf Ihre Symbole, so gues ich man kann nicht viel Informationen von hier.
Empfehle ich Ihnen, führen Sie "kpn 200". Dies zeigt die vollständige Aufrufliste und Sie könnten in der Lage, um zu sehen, die Herkunft der Methode, die zu diesem Absturz (wenn es ein Microsoft-DLL, sollten Sie die richtigen Symbole in den Schritten, die ich, sofern Sie).
Zumindest wissen Sie, es ist mit einem NVIDIA-bug 😉 Versuchen Sie die Aktualisierung der DLLs des Treibers auf die neueste version.
Im Falle dass Sie wollen lernen mehr über WinDBG Debuggen empfehle ich folgende links:
Einem wirklich guten tutorial auf die Interpretation einer stack-trace finden Sie hier:
http://www.codeproject.com/KB/debug/cdbntsd2.aspx
Allerdings auch mit einem tutorial wie, dass es sehr schwierig (oder fast unmöglich) zu interpretieren, ein stack dump ohne die richtigen Symbole verfügbar/geladen.
http://support.microsoft.com/kb/315263
und
http://www.networkworld.com/news/2005/041105-windows-crash.html
Könnte es helfen, ein Beispiel der Stapel, die Sie versuchen zu Lesen. Ein guter Tipp ist, um sicherzustellen, dass Sie die richtigen debug-Symbole für alle Module angezeigt, die in dem Stapel. Diese enthält Symbole für Module in das Betriebssystem, die Microsoft gemacht hat, deren symbol-server öffentlich zur Verfügung stellen.