Installieren und Konfigurieren von WinDBG zum Analysieren von Speicherabbildern. Windows-Debugging-Tools: BSODs diagnostizieren und beheben So aktivieren Sie das Speicherabbild in Windows

Um die Ursachen von Bluescreens (BSOD) zu identifizieren, ist eine Memory-Dump-Analyse erforderlich. In den allermeisten Fällen reicht ein Minidump aus, der bei kritischen Fehlern vom System generiert wird.
Dieser Artikel enthält schrittweise Anweisungen zum Installieren und Konfigurieren von WinDBG, einem leistungsstarken Debugging-Tool, mit dem Sie die Ursache eines BSOD ermitteln können.

Schritt 1 - Konfigurieren der Small Memory Dump-Aufzeichnung

Schritt 2 - Installation von WinDBG

Um Speicherabbilder zu analysieren, müssen Sie den WinDBG-Debugger installieren, der im Windows SDK enthalten ist. Zum Zeitpunkt der Erstellung dieses Artikels sind die neuesten verfügbaren Versionen des Windows SDK:

  • Windows 10 SDK (Netzwerkinstallationsprogramm herunterladen)
  • Windows 8.1 SDK (Netzwerkinstallationsprogramm herunterladen)

Schritt 3 - Verknüpfen von .dmp-Dateien mit WinDBG

Um das Lesen und Analysieren von Speicherabbildern zu vereinfachen, ordnen Sie die .dmp-Dateien WinDBG zu. Auf diese Weise können Sie Dump-Dateien aus dem Explorer direkt in WinDBG öffnen, ohne den vorläufigen Start zu umgehen.


Schritt 4 – Konfigurieren des Symbolservers zum Empfangen von Debug-Symboldateien


Die Installation und Erstkonfiguration von WinDBG ist nun abgeschlossen. Um sein Aussehen zu ändern, können Sie zum Menü gehen Sicht- Sie finden die Schrifteinstellungen, indem Sie den Punkt auswählen Schriftart, und die Konsolenfenstereinstellungen in Optionen.

Um die Ursachen von Bluescreens (BSOD) zu identifizieren, ist eine Memory-Dump-Analyse erforderlich. In den allermeisten Fällen reicht ein Minidump aus, der bei kritischen Fehlern vom System generiert wird.
Dieser Artikel enthält schrittweise Anweisungen zum Installieren und Konfigurieren von WinDBG, einem leistungsstarken Debugging-Tool, mit dem Sie die Ursache eines BSOD ermitteln können.

Schritt 1 - Konfigurieren der Small Memory Dump-Aufzeichnung

Schritt 2 - Installation von WinDBG

Um Speicherabbilder zu analysieren, müssen Sie den WinDBG-Debugger installieren, der im Windows SDK enthalten ist. Zum Zeitpunkt der Erstellung dieses Artikels sind die neuesten verfügbaren Versionen des Windows SDK:

  • Windows 10 SDK (Netzwerkinstallationsprogramm herunterladen)
  • Windows 8.1 SDK (Netzwerkinstallationsprogramm herunterladen)

Schritt 3 - Verknüpfen von .dmp-Dateien mit WinDBG

Um das Lesen und Analysieren von Speicherabbildern zu vereinfachen, ordnen Sie die .dmp-Dateien WinDBG zu. Auf diese Weise können Sie Dump-Dateien aus dem Explorer direkt in WinDBG öffnen, ohne den vorläufigen Start zu umgehen.


Schritt 4 – Konfigurieren des Symbolservers zum Empfangen von Debug-Symboldateien


Die Installation und Erstkonfiguration von WinDBG ist nun abgeschlossen. Um sein Aussehen zu ändern, können Sie zum Menü gehen Sicht- Sie finden die Schrifteinstellungen, indem Sie den Punkt auswählen Schriftart, und die Konsolenfenstereinstellungen in Optionen.

Einführung in WinDBG - Teil 1

Alexander Antipov

WinDBG ist ein großartiger Debugger. Es hat vielleicht keine sehr benutzerfreundliche Oberfläche und hat standardmäßig keinen schwarzen Hintergrund, aber es ist derzeit einer der leistungsstärksten und stabilsten Debugger in Windows. In diesem Artikel werde ich Sie durch die Grundlagen von WinDBG führen, damit Sie damit beginnen können.


WinDBG ist ein großartiger Debugger. Es hat vielleicht keine sehr benutzerfreundliche Oberfläche und standardmäßig keinen schwarzen Hintergrund, aber es ist derzeit einer der leistungsstärksten und stabilsten Debugger in Windows. In diesem Artikel werde ich Sie durch die Grundlagen von WinDBG führen, damit Sie damit beginnen können.

Dies ist der erste Artikel einer Reihe zu WinDBG. Liste aller Artikel in diesem Zyklus:

  • Teil 1 - Installation, Schnittstelle, Symbole, Remote/Local Debugging, Hilfesystem, Module, Register.
  • Teil 2 - Haltepunkte.
  • Teil 3 - Speicherinspektion, Schritt für Schritt Programm-Debugging, Tipps und Tricks.

In diesem Artikel behandeln wir die Installation und die Verbindung zu einem Prozess, und im Folgenden behandeln wir Breakpoints, schrittweises Debuggen und Speicherinspektion.

Installieren von WinDBG

Im Vergleich zu Windows 7 hat sich der Installationsprozess für WinDBG in Windows 8 geringfügig geändert. In diesem Abschnitt führen wir Sie durch die Installation des Debuggers für beide Betriebssysteme.

Installieren von WinDBG unter Windows 8

Unter Windows 8 ist WinDBG im Windows Driver Kit (WDK) enthalten. Sie können Visual Studio und das WDK installieren oder das Debugging Tools für Windows 8.1-Paket, das WinDBG enthält, separat installieren.

Das Installationsprogramm fragt, ob Sie WinDBG lokal installieren oder das gesamte Entwicklerpaket für einen anderen Computer herunterladen möchten. Letzteres entspricht im Wesentlichen einem Offline-Installer, was großartig ist, wenn Sie das Paket in Zukunft auf anderen Systemen installieren möchten.

Abbildung 1: Auswahl eines Installationstyps

Im nächsten Fenster müssen Sie alle Elemente außer "Debugging Tools for Windows" deaktivieren und auf die Schaltfläche "Download" klicken.

Sobald das Installationsprogramm seine Arbeit beendet hat, gehen Sie in das Verzeichnis, in das das Paket heruntergeladen wurde (standardmäßig ist es c: \ Benutzer \ Benutzername \ Downloads \ Windows Kits \ 8.1 \ StandaloneSDK) und führen Sie den Installationsvorgang durch.

Installieren von WinDBG unter Windows 7 und früher

Für Windows 7 und früher ist WinDBG im Debugging Tools for Windows-Paket enthalten, das im Windows SDK und im .Net Framework enthalten ist. Sie müssen das Installationsprogramm herunterladen und dann während des Installationsvorgangs "Debugging Tools for Windows" auswählen.

Während der Installation wähle ich die Option Debugging Tools unter Redistributable Packages aus, um ein eigenständiges Installationsprogramm zu erstellen, um nachfolgende Installationen zu erleichtern.

Abbildung 2: Auswählen von Installationsoptionen zum Erstellen eines eigenständigen Installationsprogramms

Nach Abschluss der Installation sollten Sie WinDBG-Installationsprogramme für verschiedene Plattformen haben (im Verzeichnis c:\Programme\Microsoft SDKs\Windows\v7.1\Redist\Debugging Tools for Windows\).

Abbildung 3: Ordner mit WinDBG-Installern für verschiedene Plattformen

WinDBG-Schnittstelle

Abbildung 4: Erscheinungsbild von WinDBG

Wenn Sie das Erscheinungsbild von WinDGB zum ersten Mal sehen, werden Sie feststellen, dass der Debugger einschüchternd einfach ist. Die meisten Funktionen von WinDBG werden beim Debuggen des Prozesses erlernt. Anstatt Zeit mit der Beschreibung der Schnittstelle zu verschwenden, behandeln wir in den folgenden Abschnitten nur die wichtigsten Punkte.

Das Wichtigste, was Sie über die Debugger-Schnittstelle wissen müssen, ist das Befehlsfenster, das zwei Bereiche hat. Der erste Bereich: ein Fenster, in dem das Ergebnis der Befehlsausführung angezeigt wird. Zweiter Bereich: ein kleines Textfeld zur Eingabe von Befehlen.

Abbildung 5: WinDBG-Befehlsfenster

Symbole

In den meisten Fällen erfordert WinDBG keine besonderen Einstellungen und funktioniert sofort einsatzbereit. Aber eine wichtige Sache zu optimieren sind Symbole. Symbole sind Dateien, die beim Kompilieren eines Programms mit einer ausführbaren Datei erzeugt werden und Debug-Informationen (Funktionen und Variablennamen) enthalten. Debuginformationen ermöglichen es Ihnen, die Funktionalität Ihrer Anwendung beim Debuggen oder Disassemblieren zu untersuchen. Viele Microsoft-Komponenten werden mit Symbolen kompiliert, die über den Microsoft Symbol Server verteilt werden. Bei den restlichen ausführbaren Dateien ist alles nicht so rosig - sehr selten werden Dateien mit Debugging-Informationen mit der Anwendung geliefert. In den meisten Fällen beschränken Unternehmen den Zugang zu solchen Informationen.

Um WinDBG für die Verwendung von Microsoft Symbol Server zu konfigurieren, gehen Sie zu Datei: Symboldateipfad und legen Sie SRV * C: \ Symbols * http: //msdl.microsoft.com/download/symbols fest. Es ist natürlich etwas seltsam, dass Sternchen als Trennzeichen verwendet werden. Nachdem Sie Microsoft Symbol Server konfiguriert haben, werden die Symbole in den Ordner C:\Symbols heruntergeladen.

Abbildung 6: Microsoft Symbol Server konfigurieren

WinDBG lädt bei Bedarf automatisch Symbole für Binärdateien. Sie können auch Ihren eigenen Symbolordner hinzufügen:

SRV * C: \ Symbole * http: //msdl.microsoft.com/download/symbols; c: \ SomeOtherSymbolFolder

Hinzufügen von Symbolen beim Debuggen

Wenn Sie beim Debuggen Symbole importieren müssen, können Sie dies mit .sympath tun (ein Befehlsfenster wird angezeigt, wenn Sie sich in einen Prozess einklinken). Um beispielsweise den Ordner c:\SomeOtherSymbolFolder hinzuzufügen, geben Sie den folgenden Befehl ein:

0: 025> .sympath + c: \ SomeOtherSymbolFolder
Der Symbolsuchpfad lautet: SRV * C: \ Symbole * http: //msdl.microsoft.com/download/symbols; c: \ SomeOtherSymbolFolder
Der erweiterte Symbolsuchpfad lautet: srv * c: \ Symbole * http: //msdl.microsoft.com/download/symbols; c: \ someothersymbolfolder

Es ist nicht überflüssig, Symbole nach dem Hinzufügen oder Ändern von Pfaden neu zu laden:

0: 025> .nachladen
Nachladen aktueller Module
................................................................
...............................................

Geladene Symbole prüfen

Um zu sehen, für welche Module die Symbole geladen werden, können Sie den x *!-Befehl verwenden. Obwohl WinDBG Symbole nur nach Bedarf lädt, kann das x *! zeigt die Symbole an, die geladen werden können. Sie können das Laden von Symbolen mit dem Befehl ld * erzwingen (dies kann einige Zeit dauern und Sie können diesen Vorgang stoppen, indem Sie auf Debug: Break gehen).

Jetzt können wir die Symbole für jedes Modul sehen.

Abbildung 8: Symbolliste

Debuggen eines lokalen Prozesses

Beim Debuggen eines lokalen Prozesses stehen Ihnen zwei Pfade zur Verfügung:

  1. Haken Sie einen bereits laufenden Prozess ein.
  2. Starten Sie den Prozess über WinDBG.

Jede Methode hat ihre eigenen Vor- und Nachteile. Wenn Sie das Programm beispielsweise über WinDBG ausführen, stehen Ihnen einige spezielle Debugging-Optionen (zB Heap-Debugging) zur Verfügung, die die Anwendung zum Absturz bringen können. Auf der anderen Seite gibt es auch Programme, die abstürzen, wenn Sie einen Debugger daran anschließen. Einige Anwendungen (insbesondere Malware) prüfen beim Start das Vorhandensein eines Debuggers im System und dementsprechend ist es in diesem Fall sinnvoll, an einem bereits laufenden Prozess festzuhalten. Manchmal gibt es ein Debugging eines Dienstes, der unter einem Windows-Betriebssystem ausgeführt wird, das einige Parameter während des Starts festlegt. Einige Leute argumentieren, dass das Starten eines Prozesses über den Debugger schwerwiegende Auswirkungen auf die Leistung hat. Kurz gesagt, probieren Sie beides aus und wählen Sie, was für Sie am besten funktioniert. Wenn Sie aus irgendeinem Grund eine bestimmte Methode bevorzugen, teilen Sie Ihre Gedanken in den Kommentaren mit!

Prozessstart

Wenn Sie eine eigenständige Anwendung debuggen, die lokal und nicht im Netzwerk ausgeführt wird, möchten Sie sie möglicherweise über WinDBG ausführen. Dies bedeutet jedoch nicht, dass Sie sich nicht an einen bereits laufenden Prozess anhängen können. Wählen Sie die Methode, die für Sie am bequemsten ist.

Es ist nicht schwer, den Prozess zu starten. Gehen Sie zu "Datei: Ausführbare Datei öffnen" und wählen Sie die ausführbare Datei aus, die Sie debuggen möchten. Sie können auch Argumente angeben oder das Startverzeichnis festlegen:

Abbildung 9: Auswahl der ausführbaren Datei zum Debuggen

Prozessverbindung

Auch die Verbindung zu einem bereits laufenden Prozess ist nicht schwierig. Beachten Sie jedoch, dass es in einigen Fällen eine Weile dauern kann, bis Sie den genauen Prozess gefunden haben, den Sie debuggen möchten. Einige Browser erstellen beispielsweise einen übergeordneten Prozess und dann mehrere weitere Prozesse für jede Registerkarte. Je nach Crash-Dump, das Sie debuggen, möchten Sie daher möglicherweise nicht den übergeordneten Prozess, sondern den mit der Registerkarte verknüpften Prozess einhängen.

Um sich an einen bereits laufenden Prozess anzuhängen, gehen Sie zu "Datei: An einen Prozess anhängen" und wählen Sie dann die PID oder den Namen des Prozesses. Denken Sie daran, dass Sie über die entsprechenden Rechte verfügen müssen, um den Vorgang abzuholen.

Abbildung 10: Auswahl des Prozesses zum Einhaken

Wenn die Anwendung nach dem Herstellen der Verbindung ihre Arbeit unterbrochen hat, können Sie den Modus "Nicht eingeben" verwenden, indem Sie das entsprechende Kontrollkästchen aktivieren.

Debuggen eines Remote-Prozesses

Manchmal müssen Sie möglicherweise einen Prozess auf einem Remote-System debuggen. Es wäre viel bequemer, dies mit einem lokalen Debugger zu tun, anstatt eine virtuelle Maschine oder RDP zu verwenden. Oder vielleicht debuggen Sie den LoginUI.exe-Prozess, der nur verfügbar ist, wenn das System gesperrt ist. In solchen Situationen können Sie die lokale Version von WinDBG verwenden und sich remote mit Prozessen verbinden. Es gibt zwei gängigste Methoden, um diese Aufgaben zu erledigen.

Bestehende Debug-Sitzungen

Wenn Sie bereits mit dem lokalen Debuggen Ihres Programms begonnen haben (indem Sie über WinDBG eine Verbindung herstellen oder einen Prozess starten), können Sie einen bestimmten Befehl eingeben und WinDBG startet einen "Listener", mit dem sich der Remote-Debugger verbinden kann. Verwenden Sie dazu den .server-Befehl:

Server-TCP: Port = 5005

Nachdem Sie den obigen Befehl ausgeführt haben, wird möglicherweise eine Warnung wie diese angezeigt:

Abbildung 11: Eine Warnmeldung, die nach dem Ausführen des Befehls zum Erstellen eines "Listeners" angezeigt werden kann

Dann meldet WinDBG, dass der Server läuft:

0: 005> .server tcp: port = 5005
0: -remote tcp: Port = 5005, Server = USER-PC

Jetzt können Sie von einem Remote-Host aus eine Verbindung zu einer bestehenden Debug-Sitzung herstellen, indem Sie zu "Datei: Mit einer Remote-Sitzung verbinden" gehen und in das Textfeld Folgendes eingeben: tcp: Port = 5005, Server = 192.168.127.138

Abbildung 12: Remote-Verbindung zu einer Debug-Sitzung herstellen

Nach der Verbindung erhalten Sie auf dem Remote-Client eine Bestätigung:


Server gestartet. Der Client kann sich mit jeder dieser Befehlszeilen verbinden
0: -remote tcp: Port = 5005, Server = USER-PC
MACHINENAME \ Benutzer (tcp 192.168.127.138:13334) verbunden am Mo 16. Dezember 09:03:03 2013

und die Meldung in der lokalen Version des Debuggers:

MACHINENAME \ Benutzer (tcp 192.168.127.138:13334) verbunden am Mo 16. Dezember 09:03:03 2013

Erstellen eines Remote-Servers

Sie können mit WinDBG auch einen separaten Server erstellen, eine Remoteverbindung herstellen und einen Prozess zum Debuggen auswählen. Dies kann mithilfe der Datei dbgsrv.exe erfolgen, in der Sie Prozesse debuggen möchten. Um einen solchen Server zu starten, führen Sie den folgenden Befehl aus:

dbgsrv.exe -t tcp: port = 5005

Abbildung 13: Starten des Remote-Servers

Auch hier erhalten Sie möglicherweise eine Sicherheitswarnung, die Sie akzeptieren sollten:

Abbildung 14: Sicherheitsmeldung, die beim Start des Debug-Servers angezeigt werden kann

Sie können sich mit dem Debug-Server verbinden, indem Sie in die Datei "File: Connect to Remote Stub" gehen und die folgende Zeile in das Textfeld eingeben: TCP: Port = 5005, Server = 192.168.127.138

Abbildung 15: Verbinden mit einem Debug-Server

Nach dem Verbinden erhalten Sie keine Signale, dass Sie verbunden sind, aber wenn Sie zu "Datei: An einen Prozess anhängen" gehen, sehen Sie eine Liste der Debug-Server-Prozesse (auf denen dbgsrv.exe ausgeführt wird). Jetzt können Sie sich in den Prozess einklinken, als ob Sie es lokal tun würden.

Hilfesystem

Das Hilfesystem in WinDBG ist großartig. Sie sollten nicht nur etwas Neues lernen, sondern auch Hintergrundinformationen zu einem Befehl erhalten. Verwenden Sie den Befehl .hh, um auf die WinDBG-Hilfe zuzugreifen:

Sie können auch Hilfeinformationen zu einem bestimmten Befehl abrufen. Um beispielsweise Hilfe zum Befehl .reload zu erhalten, verwenden Sie den folgenden Befehl:

windbg> .hh .reload

Oder gehen Sie einfach zum Abschnitt Hilfe: Inhalt.

Module

Während das Programm läuft, werden verschiedene Module importiert, die die Funktionalität der Anwendung bereitstellen. Wenn Sie also wissen, welche Module von der Anwendung importiert werden, können Sie die Funktionsweise besser verstehen. In vielen Fällen debuggen Sie ein bestimmtes Modul, das von einem Programm geladen wird, nicht die ausführbare Datei selbst.

Nach dem Verbinden mit dem Prozess zeigt WinDBG automatisch die geladenen Module an. Zum Beispiel werden die folgenden Module angezeigt, nachdem ich mich mit calc.exe verbunden habe:

Microsoft (R) Windows Debugger Version 6.12.0002.633 X86
Urheberrecht (c) Microsoft Corporation. Alle Rechte vorbehalten.

*** warten mit ausstehendem Anhängen
Der Symbolsuchpfad lautet: SRV * C: \ Symbole * http: //msdl.microsoft.com/download/symbols
Ausführbarer Suchpfad ist:
ModLoad: 00a70000 00b30000 C: \ Windows \ system32 \ calc.exe
ModLoad: 77630000 7776c000 C:\Windows\SYSTEM32\ntdll.dll
ModLoad: 77550000 77624000 C: \ Windows \ system32 \ kernel32.dll
ModLoad: 75920000 7596a000 C: \ Windows \ system32 \ KERNELBASE.dll
ModLoad: 76410000 77059000 C:\Windows\system32\SHELL32.dll
ModLoad: 77240000 772ec000 C:\Windows\system32\msvcrt.dll
ModLoad: 76300000 76357000 C: \ Windows \ system32 \ SHLWAPI.dll
ModLoad: 75cd0000 75d1e000 C:\Windows\system32\GDI32.dll
ModLoad: 75fa0000 76069000 C:\Windows\system32\USER32.dll
ModLoad: 777b0000 777ba000 C:\Windows\system32\LPK.dll
ModLoad: 774b0000 7754d000 C: \ Windows \ system32 \ USP10.dll
ModLoad: 73110000 732a0000 C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_
6595b64144ccf1df_1.1.7600.16385_none_72fc7cbf861225ca \ gdiplus.dll
ModLoad: 75a80000 75bdc000 C: \ Windows \ system32 \ ole32.dll
ModLoad: 76360000 76401000 C: \ Windows \ system32 \ RPCRT4.dll
ModLoad: 777c0000 778600000 C:\Windows\system32\ADVAPI32.dll
ModLoad: 75be0000 75bf9000 C: \ Windows \ SYSTEM32 \ sechost.dll
ModLoad: 76270000 762ff000 C: \ Windows \ system32 \ OLEAUT32.dll
ModLoad: 74590000 745d0000 C:\Windows\system32\UxTheme.dll
ModLoad: 74710000 748ae000 C:\Windows\WinSxS\x86_microsoft.windows.common-
ModLoad: 703d0000 70402000 C: \ Windows \ system32 \ WINMM.dll
ModLoad: 74c80000 74c89000 C: \ Windows \ system32 \ VERSION.dll
ModLoad: 77770000 7778f000 C:\Windows\system32\IMM32.DLL
ModLoad: 75c00000 75ccc000 C:\Windows\system32\MSCTF.dll
ModLoad: 74130000 7422b000 C:\Windows\system32\WindowsCodecs.dll
ModLoad: 74260000 74273000 C:\Windows\system32\dwmapi.dll
ModLoad: 756d0000 756dc000 C: \ Windows \ system32 \ CRYPTBASE.dll
ModLoad: 75e60000 75ee3000 C: \ Windows \ system32 \ CLBCatQ.DLL
ModLoad: 6ef10000 6ef4c000 C:\Windows\system32\oleacc.dll

Später im Debugging-Prozess können Sie diese Liste mit dem Befehl lmf erneut anzeigen:

0: 005> lmf
Start Ende Modulname
00a70000 00b30000 calc C: \ Windows \ system32 \ calc.exe
6ef10000 6ef4c000 oleacc C: \ Windows \ system32 \ oleacc.dll
703d0000 70402000 WINMM C: \ Windows \ system32 \ WINMM.dll
73110000 732a0000 gdiplus C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_
1.1.7600.16385_none_72fc7cbf861225ca \ gdiplus.dll
74130000 7422b000 WindowsCodecs C: \ Windows \ system32 \ WindowsCodecs.dll
74260000 74273000 dwmapi C: \ Windows \ system32 \ dwmapi.dll
74590000 745d0000 UxTheme C: \ Windows \ system32 \ UxTheme.dll
74710000 748ae000 COMCTL32 C: \ Windows \ WinSxS \ x86_microsoft.windows.common-
control_6595b64144ccf1df_6.0.7600.16385_none_421189da2b7fabfc \ COMCTL32.dll
74c80000 74c89000 VERSION C: \ Windows \ system32 \ VERSION.dll
756d0000 756dc000 CRYPTBASE C: \ Windows \ system32 \ CRYPTBASE.dll
75920000 7596a000 KERNELBASE C: \ Windows \ system32 \ KERNELBASE.dll
75a80000 75bdc000 ole32 C: \ Windows \ system32 \ ole32.dll
75be0000 75bf9000 sechost C:\Windows\SYSTEM32\sechost.dll
75c00000 75ccc000 MSCTF C: \ Windows \ system32 \ MSCTF.dll
75cd0000 75d1e000 GDI32 C: \ Windows \ system32 \ GDI32.dll
75e60000 75ee3000 CLBCatQ C: \ Windows \ system32 \ CLBCatQ.DLL
75fa0000 76069000 USER32 C: \ Windows \ system32 \ USER32.dll
76270000 762ff000 OLEAUT32 C: \ Windows \ system32 \ OLEAUT32.dll
76300000 76357000 SHLWAPI C: \ Windows \ system32 \ SHLWAPI.dll
76360000 76401000 RPCRT4 C: \ Windows \ system32 \ RPCRT4.dll
76410000 77059000 SHELL32 C: \ Windows \ system32 \ SHELL32.dll
77240000 772ec000 msvcrt C: \ Windows \ system32 \ msvcrt.dll
774b0000 7754d000 USP10 C: \ Windows \ system32 \ USP10.dll
77550000 77624000 kernel32 C: \ Windows \ system32 \ kernel32.dll
77630000 7776c000 ntdll C: \ Windows \ SYSTEM32 \ ntdll.dll
77770000 7778f000 IMM32 C: \ Windows \ system32 \ IMM32.DLL
777b0000 777ba000 LPK C: \ Windows \ system32 \ LPK.dll
777c0000 77860000 ADVAPI32 C: \ Windows \ system32 \ ADVAPI32.dll

Die Ladeadresse für ein bestimmtes Modul können Sie auch mit dem Befehl "lmf m" ermitteln:

0: 005> lmf m kernel32
Start Ende Modulname
77550000 77624000 kernel32 C: \ Windows \ system32 \ kernel32.dll

Sie können auch über die Erweiterung !Dh Informationen über den Image-Header eines bestimmten Moduls erhalten (Ausrufezeichen weist auf eine Erweiterung hin):

0: 005>!Dh-Kernel32

Dateityp: DLL
DATEIHEADERWERTE
14C-Maschine (i386)
4 Anzahl von Abschnitten
4A5BDAAD Zeit Datumsstempel Mo 13. Juli 21:09:01 2009

0 Dateizeiger auf Symboltabelle
0 Anzahl von Symbolen
E0 Größe des optionalen Headers
2102 Eigenschaften
Ausführbar
32-Bit-Wortmaschine
DLL

OPTIONALE KOPFWERTE
10B Magie #
9.00 Linker-Version
C4600 Codegröße
C800 Größe der initialisierten Daten
0 Größe der nicht initialisierten Daten
510C5 Adresse des Einstiegspunktes
1000 Codebasis
----- Neu -----
77550000 Bilddatenbank
1000 Abschnittsausrichtung
200 Dateiausrichtung
3-Subsystem (Windows-CUI)
6.01 Betriebssystemversion
6.01 Bildversion
6.01 Subsystemversion
D4000 Bildgröße
800 Kopfzeilen
D5597 Prüfsumme
00040000 Größe der Stapelreserve
00001000 Größe des Stack-Commit
00100000 Größe der Heapreserve
00001000 Größe des Heap-Commit
140 DLL-Eigenschaften
Dynamische Basis
NX-kompatibel
B4DA8 [A915] Adresse des Exportverzeichnisses
BF6C0 [1F4] Adresse des Importverzeichnisses
C7000 [520] Adresse des Ressourcenverzeichnisses
0 [0] Adresse des Ausnahmeverzeichnisses
0 [0] Adresse des Sicherheitsverzeichnisses
C8000 [B098] Adresse des Basisverlagerungsverzeichnisses
C5460 [38] Adresse des Debug-Verzeichnisses
0 [0] Adresse des Beschreibungsverzeichnisses
0 [0] Adresse des Sonderverzeichnisses
0 [0] Adresse des Thread-Speicherverzeichnisses
816B8 [40] Adresse des Konfigurationsverzeichnisses laden
278 [408] Adresse des gebundenen Importverzeichnisses
1000 [DE8] Adresse des Adresstabellenverzeichnisses importieren
0 [0] Adresse des Verzögerungsimportverzeichnisses
0 [0] Adresse des COR20-Header-Verzeichnisses
0 [0] Adresse des reservierten Verzeichnisses

ABSCHNITT-HEADER # 1
.Textname
C44C1 virtuelle Größe
1000 virtuelle Adresse
C4600 Größe der Rohdaten
800 Dateizeiger auf Rohdaten

0 Anzahl Umzüge
0 Anzahl der Zeilennummern
60000020 Flaggen
Code
(keine Ausrichtung angegeben)
Lesen ausführen

Debug-Verzeichnisse (2)
Typ Größe Adresszeiger
cv 25 c549c c4c9c Format: RSDS, guid, 2, kernel32.pdb
(10) 4 c5498 c4c98

ABSCHNITT-HEADER # 2
.Datenname
FEC virtuelle Größe
C6000 virtuelle Adresse
E00 Größe der Rohdaten
C4E00-Dateizeiger auf Rohdaten
0 Dateizeiger auf Verlagerungstabelle
0 Dateizeiger auf Zeilennummern
0 Anzahl Umzüge
0 Anzahl der Zeilennummern
C00000040 Flaggen
Initialisierte Daten
(keine Ausrichtung angegeben)
Lesen Schreiben

ABSCHNITT-HEADER # 3
.rsrc-Name
520 virtuelle Größe
C7000 virtuelle Adresse
600 Größe von Rohdaten
C5C00 Dateizeiger auf Rohdaten
0 Dateizeiger auf Verlagerungstabelle
0 Dateizeiger auf Zeilennummern
0 Anzahl Umzüge
0 Anzahl der Zeilennummern
40000040 Flaggen
Initialisierte Daten
(keine Ausrichtung angegeben)
Schreibgeschützt

ABSCHNITT-HEADER # 4
.reloc-Name
B098 virtuelle Größe
C8000 virtuelle Adresse
B200 Größe der Rohdaten
C6200-Dateizeiger auf Rohdaten
0 Dateizeiger auf Verlagerungstabelle
0 Dateizeiger auf Zeilennummern
0 Anzahl Umzüge
0 Anzahl der Zeilennummern
42000040 Flaggen
Initialisierte Daten
Wegwerfbar
(keine Ausrichtung angegeben)
Schreibgeschützt

Meldungen und Ausnahmen

Nachdem eine Verbindung zu einem Prozess hergestellt wurde, wird zuerst eine Liste von Modulen angezeigt, und dann können andere Meldungen erscheinen. Wenn wir uns beispielsweise an calc.exe klammern, setzt WinDBG automatisch einen Haltepunkt (der nur ein Marker ist, der zum Beenden der Anwendung verwendet wird). Die Breakpoint-Informationen werden angezeigt:

(da8.b44): Break-Instruction-Ausnahme - Code 80000003 (erste Chance)

Diese spezielle Nachricht ist eine Ausnahme, nämlich eine Ausnahme der ersten Chance. Eine Ausnahme ist im Wesentlichen eine spezielle Bedingung, die während der Programmausführung auftritt. Ausnahme bei der ersten Chance bedeutet, dass das Programm unmittelbar nach dem Auslösen der Ausnahme gestoppt wurde. Ausnahme der zweiten Chance bedeutet, dass nach dem Auftreten der Ausnahme einige Operationen ausgeführt werden und das Programm dann seine Arbeit beendet.

Register

Nach der Anzeige von Meldungen und Ausnahmen druckt der Debugger den Zustand der Prozessorregister. Register sind spezielle Variablen innerhalb des Prozessors, die kleine Informationsblöcke speichern oder den Zustand von etwas im Speicher verfolgen. Der Prozessor kann Informationen in diesen Registern sehr schnell verarbeiten. Dies ist viel schneller, als jedes Mal Informationen aus dem RAM im Bus zu erhalten.

Nach der Verbindung mit calc.exe zeigt WinDBG automatisch Informationen zu folgenden Registern an:

eax = 7ffd9000 ebx = 00000000 ecx = 00000000 edx = 776cd23d esi = 00000000 edi = 00000000
cs = 001b ss = 0023 ds = 0023 es = 0023 fs = 003b gs = 0000 efl = 00000246

Später können Sie diese Informationen mit dem Befehl r erneut duplizieren:

0: 005> r
eax = 7ffd9000 ebx = 00000000 ecx = 00000000 edx = 776cd23d esi = 00000000 edi = 00000000
eip = 77663540 esp = 02affd9c ebp = 02affdc8 iopl = 0 nv up ei pl zr na pe nc
cs = 001b ss = 0023 ds = 0023 es = 0023 fs = 003b gs = 0000 efl = 00000246
ntdll!DbgBreakPoint:
77663540 ccm int 3

Wenn wir den Wert eines bestimmten Registers abrufen möchten, können wir den folgenden Befehl ausführen:

0: 005> reax
eax = 7ffd9000

Informationen aus mehreren Registern gleichzeitig können wie folgt abgerufen werden:

0: 005> reax, ebp
eax = 7ffd9000 ebp = 02affdc8

Zeiger auf Anweisung

Der letzte Befehl behandelt die ausgelösten Anweisungen. Auch hier werden wie beim r-Befehl Informationen über den Inhalt des EIP-Registers auf den Bildschirm ausgegeben. EIP ist ein Register, das den Ort des nächsten auszuführenden Befehls durch den Prozessor enthält. Was WinDBG anzeigt, ist das Äquivalent des Befehls u eip L1, wonach WinDBG zu der im EIP-Register angegebenen Adresse geht, diesen Abschnitt in Assemblercode umwandelt und auf dem Bildschirm anzeigt.

ntdll!DbgBreakPoint:
77663540 ccm int 3

in Kontakt bleiben

In zukünftigen Artikeln werden wir uns mit der Verwendung von WinDBG in einer Live-Umgebung befassen: Haltepunkte, schrittweises Debuggen und Speicherscans. Nicht wechseln! J.

am 22. Juni 2010

Zuvor war Windbg separat zum Download verfügbar. Aber für die neuesten Versionen behält Microsoft es als Teil des Windows SDK bei. Nachfolgend finden Sie die Download-Links.

Windows 10

Die neueste Version von Windbg für Windows 7 kann unter dem Link https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk heruntergeladen werden

Windows 7

Laden Sie Installer von den obigen Links herunter. Beachten Sie, dass dabei nicht das gesamte SDK heruntergeladen wird, sondern nur ein Installationsprogramm. Nachdem Sie die Datei ausgeführt haben, können Sie auswählen, welche Tools Sie herunterladen möchten. Wenn Sie nur an Windbg interessiert sind, können Sie alles andere ausschließen und unter "Allgemeine Dienstprogramme" nur "Debugging-Tools" auswählen.

Das obige Paket installiert windbg 6.12 Version. Wenn Sie windbg schnell installieren möchten, können Sie die ältere Version (6.11) verwenden, die von heruntergeladen werden kann
der Link am Ende dieses Beitrags.

Nach der Installation finden Sie das Programm im Startmenü -> Alle Programme -> Debugging-Tools für Windows -> Windbg

Debugging-Tools für Windows- Tools zum Debuggen des Codes von Windows-Betriebssystemen. Sie sind eine Reihe kostenloser Software von Microsoft, die entwickelt wurde, um Code im Benutzermodus und im Kernelmodus zu debuggen: Anwendungen, Treiber, Dienste, Kernelmodule. Das Toolkit enthält Debugger im Konsolen- und GUI-Modus, Dienstprogramme für die Arbeit mit Symbolen, Dateien, Prozessen und Dienstprogramme für das Remote-Debugging. Das Toolkit enthält Dienstprogramme, mit denen Sie die Ursachen von Fehlern in verschiedenen Komponenten des Systems finden können. Debugging-Tools für Windows ab einem bestimmten Zeitpunkt stehen sie nicht mehr als eigenständiges Distributionskit zum Download zur Verfügung und sind im Windows SDK (Windows Software Development Kit) enthalten. Das Windows SDK wiederum ist als Teil des MSDN-Abonnementprogramms verfügbar oder kann kostenlos als eigenständige Distribution von msdn.microsoft.com heruntergeladen werden. Laut den Entwicklern ist die neueste und aktuellste Version der Debugging Tools für Windows im Windows SDK enthalten.

Debugging-Tools für Windows werden häufig aktualisiert und der Öffentlichkeit zur Verfügung gestellt, und dieser Vorgang hängt nicht von der Veröffentlichung der Betriebssysteme ab. Suchen Sie daher regelmäßig nach neuen Versionen.

Sehen wir uns nun an, was uns insbesondere die Debugging Tools für Microsoft Windows ermöglichen:

  • Lokale Anwendungen, Dienste (Dienste), Treiber und Kernel debuggen;
  • Debuggen von Remoteanwendungen, Diensten (Diensten), Treibern und Kernel über das Netzwerk;
  • Debuggen Sie laufende Anwendungen in Echtzeit;
  • Analysieren Sie Dump-Dateien von Anwendungsspeicher, Kernel und System als Ganzes;
  • Arbeiten Sie mit Systemen, die auf x86 / x64 / Itanium-Architekturen basieren;
  • Debuggen von Benutzermodus- und Kernelmodus-Programmen;

Die folgenden Versionen von Debugging Tools für Windows sind verfügbar: 32-Bit x86, Intel Itanium, 64-Bit x64. Wir brauchen zwei davon: x86 oder x64.

Es gibt mehrere Möglichkeiten, Debugging-Tools für Windows zu installieren. In diesem Artikel werden nur die wichtigsten betrachtet:

  • Installation über den Webinstaller.
  • Installieren von Debugging-Tools für Windows aus dem Windows SDK-ISO-Image.
  • Debugging-Tools für Windows direkt aus den Paketen dbg_amd64.msi /dbg_x86.msi installieren.

Es bleibt unklar, an welcher Stelle, warum sollte ich das Debugging-Toolkit auf meinem Computer installieren? Schließlich sind Sie doch oft mit einer Situation konfrontiert, in der Eingriffe in die Arbeitsumgebung äußerst unerwünscht sind! Darüber hinaus kann die Installation eines neuen Produkts, dh Änderungen an den Registrierungs- / Systemdateien, völlig inakzeptabel sein. Beispiele sind geschäftskritische Server. Warum denken Entwickler nicht über eine Option mit portablen (tragbaren) Versionen von Anwendungen nach, die keine Installation erfordern?
Der Installationsprozess für das Debugging Tools für Windows-Paket hat von Version zu Version mehrere Änderungen erfahren. Lassen Sie uns nun direkt in den Installationsprozess einsteigen und nach Wegen suchen, wie das Toolkit installiert werden kann.

Debugging-Tools für Windows mit dem Web-Installer installieren

Gehen Sie zur Windows SDK-Archivseite und suchen Sie einen Abschnitt namens Windows 10 und unterhalb des Elements "Windows 10 SDK (10586) und ein Geräteemulator mit Windows 10 Mobile (Microsoft) (Version 10586.11)".

Wir klicken auf den Artikel SDK INSTALLIEREN... Laden Sie nach dem Klicken die Datei sdksetup.exe herunter und führen Sie sie aus, die die Online-Installation des Windows SDK initiiert. In der Anfangsphase prüft das Installationsprogramm, ob die neueste Version des .NET Framework-Pakets auf dem System installiert ist (derzeit 4.5). Fehlt das Paket, wird die Installation angeboten und die Station nach Abschluss neu gestartet. Unmittelbar nach dem Neustart, in der Phase der Benutzerautorisierung, startet der Installationsprozess direkt aus dem Windows SDK.

Häufig können bei der Auswahl aller Komponenten eines Pakets ausnahmslos Fehler während des Installationsvorgangs auftreten. In diesem Fall wird empfohlen, die Komponenten selektiv zu installieren, das minimal erforderliche Set.

Nachdem die Installation der Debugging Tools für Windows abgeschlossen ist, sieht der Speicherort der Debugdateien für diese Installationsmethode wie folgt aus:

  • 64-Bit-Versionen: C:\Programme (x86)\Windows Kits\x.x\Debugger\x64
  • 32-Bit-Versionen: C:\Programme (x86)\Windows Kits\x.x\Debugger\x86

* wobei x.x eine bestimmte Version des Entwicklungskits ist;
Ist Ihnen aufgefallen, dass sich die Installationspfade ab Version 8 merklich von den klassischen für alle vorherigen Versionen der Debugging-Tools unterscheiden?

Ein großer Vorteil dieser Methode der Installation von Debigging Tools für Windows ist die gleichzeitige Installation von Versionen der Debugging Tools für alle Architekturen.

Installieren von Debugging-Tools für Windows vom Windows SDK-ISO-Image

Diese Methode beinhaltet die Installation der Debugging Tools für Windows mit einem vollständigen Installationsabbild des Windows SDK (Software Developers Kit). Bis zu einem bestimmten Zeitpunkt war es möglich, das ISO-Image für das entsprechende System auf der Windows SDK-Archivseite herunterzuladen. Im Moment können Sie jedoch ein ISO-Image des SDK erhalten, indem Sie den Web-Installer sdksetup.exe ausführen und das Element auswählen Laden Sie das Windows Software Development Kit herunter im Startfenster des Installers:

Wie sich herausstellte, ist die bisherige Installationsmethode mit dem Webinstaller ziemlich launisch und schlägt oft fehl. Auf sauberen Systemen lässt es sich problemlos installieren, auf ausreichend belasteten Systemen treten jedoch zahlreiche Probleme auf. Wenn Sie nur einen solchen Fall haben, verwenden Sie diese Methode.

Dementsprechend müssen Sie auf der Seite das erforderliche Distributions-Kit auswählen, für mich (und ich denke für viele) ist es im Moment "Windows SDK für Windows 7 und .NET Framework 4" und klicken Sie unten auf den Link "Get an ISO-Image einer DVD" ...

Wenn Sie mit der Website msdn.microsoft.com arbeiten, empfehle ich Ihnen, den Internet Explorer-Browser zu verwenden, da es Fälle von Funktionsunfähigkeit von Konkurrenzprodukten gegeben hat!

Dementsprechend ist es notwendig, nur bei Bedarf zu wählen. Normalerweise ist die Bitness von Debugging Tools für Windows die gleiche wie die Bitness des Systems. Meine untersuchten Systeme sind meistens 64-Bit, daher lade ich in den meisten Fällen das Image für das 64-Bit-System GRMSDKX_EN_DVD.iso herunter.
Dann, nach dem Download des Images, müssen wir irgendwie mit dem vorhandenen ISO-Image arbeiten. Der traditionelle Weg ist natürlich das Aufnehmen einer CD, aber dies ist eine ziemlich lange und manchmal kostspielige Methode. Ich schlage vor, kostenlose Dienstprogramme zum Erstellen virtueller Festplattengeräte im System zu verwenden. Ich persönlich bevorzuge dafür das Programm DEAMON Tools Lite. Jemand hat vielleicht andere Vorlieben, direktere oder leichtere Dienstprogramme, Geschmack und Farbe, wie sie sagen.. Nach der Installation von DAEMON Tools Lite doppelklicke ich einfach auf die Image-Datei GRMSDKX_EN_DVD.iso und ich habe eine neue virtuelle CD:

Dann aktiviere ich per Doppelklick das Autoload und starte die Installation des Windows SDK:

Wenn es an der Reihe ist, die zu installierenden Komponenten aus der Liste auszuwählen, deaktivieren wir absolut alle Optionen außer den im Screenshot markierten. Dies wird uns helfen, jetzt unnötige Fehler zu vermeiden.


Alles ist genau so, im Screenshot sind zwei Optionen markiert: "Windows Performance Toolkit" und "Debugging Tools for Windows". Wählen Sie beides, denn das Windows Performance Toolkit wird sich für Ihre Arbeit definitiv als nützlich erweisen! Nach einem Klick auf die Schaltfläche „Weiter“ wird die Installation wie gewohnt fortgesetzt. Und am Ende sehen Sie die Aufschrift "Installation abgeschlossen".
Am Ende der Installation sehen die Arbeitsverzeichnisse des Debugging Tools for Windows-Sets wie folgt aus:

  • Für x86-Version:
  • Für x64-Version:

Damit ist die Installation von Debugging Tools für Windows abgeschlossen.

Debugging-Tools für Windows über .msi-Datei installieren

Bei Problemen bei der Installation von Debugging Tools für Windows auf den beiden vorherigen Wegen haben wir noch eine weitere, die zuverlässigste und bewährteste, die sozusagen mehr als einmal geholfen hat. Früher, vor der Integration in das Windows SDK, waren Debugging Tools für Windows als separates .msi-Installationsprogramm verfügbar, das auch jetzt noch zu finden ist, aber bereits in den Eingeweiden des Windows SDK-Distributionskits. Da wir bereits ein ISO-Image des Windows SDK in unseren Händen haben, können wir es nicht in das System mounten, sondern einfach mit dem bekannten WinRAR-Archiver oder einem anderen Produkt öffnen, das mit dem Inhalt von ISO-Disketten arbeitet.

Nach dem Öffnen des Bildes müssen wir in das Verzeichnis "Setup" im Stammverzeichnis wechseln und dann eines der Verzeichnisse auswählen:

  • So installieren Sie die 64-Bit-Version: \ Setup \ WinSDKDebuggingTools_amd64 und entpacken Sie die Datei dbg_amd64.msi aus diesem Verzeichnis.
  • Um die 32-Bit-Version zu installieren: \ Setup \ WinSDKDebuggingTools und entpacken Sie die Datei dbg_x86.msi aus diesem Verzeichnis.

Am Ende der Installation sehen die Arbeitsverzeichnisse des Debugging Tools for Windows-Sets wie folgt aus:

  • Für x86-Version: C:\Programme (x86)\Debugging-Tools für Windows (x86)
  • Für x64-Version: C:\Programme\Debugging-Tools für Windows (x64)

An diesem Punkt ist die Installation der Debugging Tools für Windows abgeschlossen.

Weitere Informationen

Ich weiß nicht, womit es zusammenhängt, vielleicht mit meiner Unachtsamkeit, aber nach der Installation der Debugging Tools für Windows registriert das Installationsprogramm den Pfad zum Verzeichnis nicht beim Debugger in der Systemvariablen Path. Dies erlegt dem Start verschiedener Debugging-Aufgaben direkt von der Konsole aus gewisse Einschränkungen auf. Deshalb schreibe ich in Ermangelung eines Pfades selbst in das Fenster Umgebungsvariablen Pfad zu Debugging-Tools:

  • C:\Programme (x86)\Windows Kits\10\Debugger\x86
  • C:\Programme (x86)\Windows Kits\10\Debugger\x64

* In Ihrem Fall können sich die Pfade sowohl aufgrund der Verwendung eines Betriebssystems einer anderen Bitzahl als auch aufgrund der Verwendung des SDKs einer anderen Version unterscheiden.

Die Debugging Tools für Windows-Paketdienstprogramme können als portable Anwendungen arbeiten, Sie müssen nur das Verzeichnis vom Arbeitssystem kopieren Microsoft Windows Performance Toolkit und als portable Version auf einem Produktionsserver verwenden. Aber vergessen Sie nicht, die Kapazität des Systems zu berücksichtigen !! Selbst wenn Sie das Paket auf einem kritischen System vollständig installiert haben, können Sie direkt nach der Installation mit der Arbeit beginnen, es ist kein Neustart erforderlich.

Debugging-Tools für die Windows-Komposition

Und nun endlich präsentieren wir die Zusammensetzung der Debugging Tools für Windows:

Datei Termin
adplus.doc Dokumentation für das ADPlus-Dienstprogramm.
adplus.exe Eine Konsolenanwendung, die den cdb-Debugger automatisiert, um Dumps und Protokolldateien für einen oder mehrere Prozesse zu erstellen.
agestore.exe Ein Dienstprogramm zum Entfernen veralteter Dateien aus dem Repository, das vom Symbolserver oder Quellserver verwendet wird.
breakin.exe Ein Dienstprogramm, mit dem Sie eine benutzerdefinierte Pausenkombination an Prozesse senden können, ähnlich wie beim Drücken von STRG + C.
cdb.exe Ein Konsolen-Debugger im Benutzermodus.
convertstore.exe Dienstprogramm zum Konvertieren von Symbolen von 2-Tier in 3-Tier.
dbengprx.exe Reaper (Proxy-Server) für Remote-Debugging.
dbgrpc.exe Ein Dienstprogramm zum Anzeigen von Informationen zum Status eines RPC-Aufrufs.
dbgsrv.exe Serverprozess, der für das Remote-Debugging verwendet wird.
dbh.exe Ein Dienstprogramm zum Anzeigen von Informationen über den Inhalt einer Symboldatei.
dumpchk.exe Dienstprogramm für die Dump-Prüfung. Ein Dienstprogramm zum schnellen Überprüfen einer Dump-Datei.
dumpexam.exe Ein Dienstprogramm zum Analysieren eines Speicherabbilds. Das Ergebnis wird in % SystemRoot% \ MEMORY.TXT angezeigt.
gflags.exe Der Editor der globalen Flags des Systems. Das Dienstprogramm verwaltet Registrierungsschlüssel und andere Einstellungen.
i386kd.exe Wrapper für kd. Wann hieß es kd für Windows NT / 2000-basierte Systeme für x86-Rechner? Vermutlich aus Kompatibilitätsgründen verlassen.
ia64kd.exe Wrapper für kd. Wann hieß es kd für Windows NT / 2000-basierte Systeme für ia64-Rechner? Vermutlich aus Kompatibilitätsgründen verlassen.
kd.exe Konsolen-Debugger im Kernelmodus.
kdbgctrl.exe Kernel-Debug-Management-Tool. Dienstprogramm zum Verwalten und Konfigurieren der Kernel-Debugging-Verbindung.
kdsrv.exe Verbindungsserver für KD. Das Dienstprogramm ist eine kleine Anwendung, die startet und auf Remoteverbindungen wartet. kd wird auf dem Client ausgeführt und stellt eine Verbindung zu diesem Server für Remote-Debugging her. Sowohl Server als auch Client müssen aus derselben Debugging Tools-Assembly stammen.
kill.exe Dienstprogramm zum Beenden von Prozessen.
list.exe Ein Dienstprogramm zum Anzeigen des Inhalts einer Datei auf dem Bildschirm. Im Paket stellte sich heraus, dass dieses Miniaturdienstprogramm nur einem Zweck dient - dem Anzeigen großer Text- oder Protokolldateien. Es nimmt wenig Speicherplatz ein, da es den Text in Blöcken lädt.
logger.exe Ein Miniatur-Debugger, der nur mit einem Prozess arbeiten kann. Das Dienstprogramm injiziert logexts.dll in den Prozessraum, der alle Funktionsaufrufe und andere Aktionen des untersuchten Programms aufzeichnet.
logviewer.exe Ein Dienstprogramm zum Anzeigen von Protokollen, die vom Debugger logger.exe geschrieben wurden.
ntsd.exe Microsoft NT symbolischer Debugger (NTSD). Debugger, identisch mit cdb, außer dass beim Start ein Textfeld erstellt wird. Wie cdb kann ntsd sowohl Konsolenanwendungen als auch grafische Anwendungen debuggen.
pdbcopy.exe Ein Dienstprogramm zum Entfernen privater Symbole aus einer Symboldatei, Kontrolle über öffentliche Symbole, die in der Symboldatei enthalten sind.
remote.exe Dienstprogramm für Remote-Debugging und Remote-Steuerung aller KD-, CDB- und NTSD-Konsolen-Debugger. Ermöglicht die Remote-Ausführung all dieser Konsolen-Debugger.
rtlist.exe Remote-Aufgabenanzeige. Das Dienstprogramm wird verwendet, um laufende Prozesse über den DbgSrv-Serverprozess aufzulisten.
symchk.exe Dienstprogramm zum Herunterladen von Symbolen vom Microsoft Symbol Server und Erstellen eines lokalen Symbol-Cache.
symstore.exe Dienstprogramm zum Erstellen eines Netzwerks oder lokalen Speichers von Symbolen (2-Tier / 3-Tier). Ein Symbolspeicher ist ein spezialisiertes Verzeichnis auf der Festplatte, das nach einer bestimmten Struktur aufgebaut ist und Symbole enthält. Im Wurzelverzeichnis der Symbole wird eine Struktur von Unterordnern angelegt, deren Namen identisch mit den Namen der Komponenten sind. Jeder dieser Unterordner enthält wiederum verschachtelte Unterordner mit speziellen Namen, die durch das Hashing von Binärdateien erhalten wurden. Das Dienstprogramm symstore durchsucht die Komponentenordner und fügt dem Symbolspeicher neue Komponenten hinzu, von wo aus sie von jedem Client abgerufen werden können. Der Symstore soll verwendet werden, um Symbole aus einem 0-Tier-Speicher zu holen und in einen 2-Tier / 3-Tier-Speicher zu legen.
tlist.exe Aufgabenanzeige. Ein Dienstprogramm zum Auflisten aller laufenden Prozesse.
umdh.exe Dump-Heap-Dienstprogramm im Benutzermodus. Dienstprogramm zum Analysieren der Heaps (Heap) des ausgewählten Prozesses. Ermöglicht Ihnen, verschiedene Optionen für den Heap anzuzeigen.
usbview.exe USB-Viewer. Dienstprogramm zum Anzeigen von an den Computer angeschlossenen USB-Geräten.
vmdemux.exe Demultiplexer für virtuelle Maschinen. Erstellt mehrere Named Pipes für eine einzelne COM-Verbindung. Kanäle werden verwendet, um verschiedene Komponenten der virtuellen Maschine zu debuggen
windbg.exe GUI-Benutzermodus- und Kernelmodus-Debugger.
Fortsetzung des Themas:
Sonstig

Soziale Netzwerke im Internet sind heute spezialisierte Sites, die Menschen auf einer bestimmten Basis in einem Netzwerk zusammenbringen. In ihrem Wachstum...