Freigeben über


Manuelles Debuggen der Dienstanwendung

Das manuelle Anfügen an eine Dienstanwendung, nachdem sie gestartet wurde, ähnelt dem Debuggen eines ausgeführten Benutzermodusprozesses.

Verwenden Sie das TList-Tool mit der Option "/s ", um die Prozess-ID (PID) jedes ausgeführten Prozesses und die in jedem Prozess aktiven Dienste anzuzeigen.

Wenn die Dienstanwendung, die Sie debuggen möchten, in einem einzigen Prozess mit anderen Diensten kombiniert wird, müssen Sie sie isolieren, bevor Sie sie debuggen. Führen Sie dazu das unter "Isolieren des Diensts" beschriebene Verfahren aus. Starten Sie am Ende dieses Verfahrens den Dienst neu.

Um die neue PID des Diensts zu ermitteln, führen Sie den folgenden Befehl für das Dienstkonfigurationstool (Sc.exe) aus, wobei ServiceName der Name des Diensts ist.

sc queryex ServiceName 

Starten Sie nun WinDbg oder CDB mit dieser Dienstanwendung als Ziel. Hierfür gibt es drei Möglichkeiten: durch Angeben der PID mit der Option -p, durch Angeben des ausführbaren Namens mit der Option -pn (wenn der Name der ausführbaren Datei eindeutig ist) oder durch Angeben des Dienstnamens mit der Option -psn.

Wenn der Prozess z. B. SpoolSv.exe eine PID von 651 aufweist und den Dienst mit dem Namen Spooler enthält, entsprechen die folgenden drei Befehle:

windbg -p 651 [AdditionalOptions] 
windbg -pn spoolsv.exe [AdditionalOptions] 
windbg -psn spooler [AdditionalOptions] 

Fahren Sie nach dem Start des Debuggers wie bei jeder anderen Benutzermodusdebuggingsitzung fort.