Um die Ursache für einen Absturz oder den möglichen Grund für das Hängen der Anwendung herausfinden zu können, benötigen wir eine sogenannte Speicherabbilddatei (Dump).
Erstellung einer Speicherabbilddatei mit Microsoft WinDbg
Zur Erstellung einer solchen Datei empfehlen wir die Nutzung von Microsoft WinDbg. Mit Microsoft WinDbg wird unserer Entwicklungsabteilung eine möglichst umfangreiche Analyse der Problematik ermöglicht. Allerdings müssen Sie dazu auf dem betroffenen Arbeitsplatz in der Lage sein, ausführbare Dateien herunterzuladen und Programme zu installieren. Sollte es nicht möglich sein die Installation von Microsoft WinDbg auf dem PC durchzuführen, kann notfalls Microsoft ProcDump genutzt werden. Weitere Informationen finden Sie im zweiten Abschnitt dieses Knowledgebase-Artikels.
Bitte beachten Sie die nachfolgenden Informationen:
1.) Öffnen Sie die folgende Webseite, um den Download von Microsoft WinDbg zu beginnen: Download Debugging Tools for Windows - WinDbg - Windows drivers | Microsoft Learn
2.) Wählen Sie den Link “Get Debugging Tools for Windows (WinDbg) (from the SDK)”.
3.) Auf der Folgeseite wählen Sie den Link “DOWNLOAD THE INSTALLER”, es sollte anschließend der Download der Datei “winsdksetup.exe” beginnen.
4.) Sobald der Download abgeschlossen ist führen Sie die Datei “winsdksetup.exe” aus.
5.) Im Setup-Prozess wählen Sie “Install the Windows Software Development Kit to this Computer” und klicken auf “Next”.
6.) Auf der Seite “Select the features you want to install” wählen Sie bitte ausschließlich die “Debugging Tools for Windows”, andere Features werden nicht benötigt.
7.) Nach erfolgreicher Installation starten Sie Microsoft WinDbg über das Startmenü: “Windows Kits > WinDbg (x86)”, Sollten Sie eine 64-bit(x64)-Anwendung nutzen, verwenden Sie bitte “Windows Kits > WinDbg (x64)”.
8. a) Wählen Sie im Menü “File > Open Executable” die ausführbare Datei Ihrer Anwendung, wenn Sie eine ausführbare Anwendung bereitstellen (z.B. mittels einer .exe-Datei). Unter Umständen muss hierzu der Dateifilter auf “All Files” geändert werden.
8. b) Wählen Sie im Menü “File > Attach to Process” die ausführende Anwendung für einen Dienst oder eine Webseite, in welcher List & Label verwendet wird (z.B. “w3wp.exe” für eine über die Microsoft Internetinformationsdienste (IIS) bereitgestellte Webseite).
9.) Nach erfolgreichem Ladevorgang kann die Anwendung bzw. das Anhängen an einen Prozess unter dem Menüpunkt “Debug > Go” gestartet werden.
10.) Versuchen Sie bitte den Absturz zu reproduzieren. Wenn die Anwendung abgestürzt ist, erhalten Sie weitere Informationen in der Konsole von Microsoft WinDbg und die Anwendung sollte in einem hängenden Zustand sein, sodass keine Eingaben mehr aufgenommen und bearbeitet werden können.
11. a) Im Fall eines Absturzes wird unterhalb des Protokollfensters eine weiße Kommandozeile verfügbar, in die folgender Befehl eingegeben werden kann, um die Speicherabbilddatei zu erzeugen. Legen Sie den Ordner "C:\temp" ggf. an, falls dieser noch nicht vorhanden sein sollte.
.dump /ma C:\temp\dump.dmp
11. b) Im Fall des Hängens der Anwendung klicken Sie innerhalb von Microsoft WinDbg bitte auf “Debug > Break” und tragen Sie den folgenden Befehl in die weiße Kommandozeile, unterhalb des Protokollfensters ein. Legen Sie den Ordner "C:\temp" ggf. an, falls dieser noch nicht vorhanden sein sollte.
.dump /ma C:\temp\dump.dmp
Bitte stellen Sie sicher, dass der verwendete Pfad zur Erstellung der Speicherabbilddatei beschreibbar ist. Eine so erstellte Speicherabbilddatei (im Beispiel im Pfad “C:\temp\dump.dmp”) kann anschließend in ein .zip-Archiv gepackt (Rechtsklick auf die Datei, Auswahl des Kontextmenüeintrags “Senden an > ZIP-komprimierter Ordner”) und als Anhang an einen neuen Kontakt für den combit Support im Supportportal hochgeladen werden.
Erstellung einer Speicherabbilddatei mit Microsoft ProcDump
Sollte es nicht möglich sein, die Installation von Microsoft WinDbg auf dem PC durchzuführen, kann alternativ Microsoft ProcDump genutzt werden, um eine Speicherabbilddatei zu erzeugen. Microsoft ProcDump ist hierbei zwar auch geeignet, um Speicherabbilddateien zu erzeugen, jedoch besteht eine größere Chance, dass die Speicherabbilddateien für unsere Entwicklungsabteilungen nicht vollständig analysierbar sind. Eine weitere Problematik besteht darin, dass Microsoft ProcDump auf bestimmte Arten von Abstürzen und insbesondere dem Hängen von Anwendungen nicht reagiert, sodass keine Speicherabbilddatei erstellt werden kann. Wir empfehlen Ihnen daher die Verwendung von Microsoft WinDbg, dessen Verwendung im oberen Abschnitt dieses Knowledgebase-Artikels genauer erläutert wird.
Bitte beachten Sie die nachfolgenden Informationen zur Erstellung einer Speicherabbilddatei mittels Microsoft ProcDump:
1.) Öffnen Sie die folgende Webseite, um den Download von Microsoft ProcDump zu beginnen: ProcDump - Sysinternals | Microsoft Learn
2.) Wählen Sie den Link “Download ProcDump”, es sollte anschließend der Download der Datei “Procdump.zip” beginnen.
3.) Extrahieren Sie die Datei “Procdump.zip” auf Ihren Desktop (Rechtsklick auf die Datei, Auswahl des Kontextmenüeintrags “Alle extrahieren”).
4.) Prüfen Sie die Informationen in der Datei “Eula.txt”, um die Arbeit mit Microsoft ProcDump zu ermöglichen. Das Akzeptieren dieses “End User License Agreement (EULA)” ist zwingend notwendig, um eine Speicherabbilddatei mittels Microsoft ProcDump durchzuführen und wird im weiteren Verlauf dieser Anleitung vorausgesetzt.
5.) Starten Sie Ihre Anwendung über die bekannten Programmverknüpfungen.
6.) Öffnen Sie die Windows Eingabeaufforderung, z.B. über die Tastenkombination “Windows + R” und der Eingabe und Bestätigung von “cmd” im geöffneten “Ausführen”-Dialog).
7.) Wechseln Sie nun über den nachfolgenden Befehl in das auf dem Desktop befindliche “Procdump”-Verzeichnis:
cd %USERPROFILE%\Desktop\Procdump
8.) Damit Microsoft ProcDump in der Lage ist eine Speicherabbilddatei eines laufenden Prozesses zu erzeugen, muss ein weiterer Befehl verwendet werden. Geben Sie diesen ebenfalls in das geöffnete Fenster der Eingabeaufforderung ein und bestätigen Sie mit Drücken der Eingabe-Taste (Enter). Legen Sie den Ordner "C:\temp" ggf. an, falls dieser noch nicht vorhanden sein sollte.
procdump -accepteula –e –ma <Anwendung.exe> –o C:\temp\dump.dmp
Wenn Sie eine Speicherabbilddatei für eine 64-bit Anwendung erstellen möchten, dann nutzen Sie bitte folgenden Befehl. Legen Sie den Ordner "C:\temp" ggf. an, falls dieser noch nicht vorhanden sein sollte.
procdump64 -accepteula –e –ma <Anwendung.exe> –o C:\temp\dump.dmp
Bitte stellen Sie sicher, dass der verwendete Pfad zur Erstellung der Speicherabbilddatei beschreibbar ist.
9.) Anschließend sollten weitere Informationen über den Prozess Ihrer Anwendung in Microsoft ProcDump angezeigt werden. Dies ist ein Zeichen dafür, dass Microsoft ProcDump erfolgreich in der Lage ist, ein Speicherabbild zu erzeugen und in eine Datei zu schreiben.
10.) Wechseln Sie zurück in Ihre Anwendung und führen Sie die Schritte bis zu dem Absturz erneut aus.
11.) Microsoft ProcDump erzeugt automatisch eine Speicherabbilddatei im angegebenen Verzeichnis (im Beispiel “C:\temp\dump.dmp”), sobald das Problem auftritt.
Eine so erstellte Speicherabbilddatei kann ebenfalls in ein .zip-Archiv gepackt (Rechtsklick auf die Datei, Auswahl des Kontextmenüeintrags “Senden an > ZIP-komprimierter Ordner”) und als Anhang an einen neuen Kontakt für den combit Support im Supportportal hochgeladen werden.
Erstellung einer Speicherabbilddatei mit dem Windows Task-Manager
Wenn weder der Download und die Installation von Microsoft WinDbg noch der Download von Microsoft ProcDump möglich ist, kann als letzte Alternative der Windows Task-Manager zur Erstellung einer Speicherabbilddatei verwendet werden.
Bitte beachten Sie dabei jedoch, dass lediglich ein hängender Programmzustand sinnvoll in einer Speicherabbilddatei erfasst werden kann. Ein hängender Programmzustand kann mittels Microsoft WinDbg ebenfalls in eine Speicherabbilddatei geschrieben werden. Bei der Verwendung des Windows Task-Managers zur Erstellung einer Speicherabbilddatei muss zudem damit gerechnet werden, dass nicht alle für eine Analyse der Problematik notwendigen Informationen in die Datei geschrieben werden können. Unter Umständen ist es sogar möglich, dass das Speicherabbild unvollständig ist oder zu einem falschen Zeitpunkt aufgezeichnet wurde, sodass keine Analyse der Problematik durch unsere Entwicklungsabteilung möglich ist. Sollte die Anwendung abstürzen ist der Windows Task-Manager gänzlich ungeeignet - wir empfehlen auch hierbei die Verwendung von Microsoft WinDbg.
Wenn Sie dennoch eine Speicherabbilddatei mit dem Windows Task-Manager erstellen wollen, beachten Sie bitte die nachfolgenden Informationen:
1.) Öffnen Sie den Windows Task-Manager (Tastenkombination: STRG + UMSCH + ESC, oder über einen Rechtsklick auf die Start-Leiste und der Auswahl des Kontextmenüeintrags “Task-Manager”).
2.) Starten Sie Ihre Anwendung über die bekannten Programmverknüpfungen.
3.) Führen Sie die Schritte innerhalb Ihrer Anwendung erneut aus, die zu einem Hängen der Anwendung führen.
4.) Wechseln Sie zurück in den Windows Task-Manager.
5.) Klicken Sie auf den Reiter “Details”.
6.) Suchen Sie in der dargestellten Liste den Prozess Ihrer Anwendung - hierbei ist es unter Umständen sinnvoll eine Sortierung der Liste nach Namen zu aktivieren.
7.) Wählen Sie den Prozess Ihrer Anwendung mit einem Rechtsklick an.
8.) Klicken Sie auf den Kontextmenüeintrag “Abbilddatei erstellen”.
9.) Nach kurzer Bearbeitungszeit wird Ihnen anschließend ein weiterer Dialog angezeigt, welcher Sie über den Speicherort der Speicherabbilddatei informiert. Üblicherweise wird die Datei im Pfad für benutzerspezifische temporäre Dateien abgelegt (z.B. “C:\Users<Windows Benutzername>\AppData\Local\Temp”, auch zu erreichen über die Windows Umgebungsvariable “%TEMP%”, welche im Windows Explorer in die Adressleiste eingetragen und mit der Eingabe-Taste (Enter) bestätigt werden kann).
Eine so erstellte Speicherabbilddatei kann ebenfalls in ein .zip-Archiv gepackt (Rechtsklick auf die Datei, Auswahl des Kontextmenüeintrags “Senden an > ZIP-komprimierter Ordner”) und als Anhang an einen neuen Kontakt für den combit Support im Supportportal hochgeladen werden.