Freigeben über


Manuelles Debuggen der Dienstanwendung

Das manuelle Anfügen an eine Dienstanwendung nach dem Start ä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, mit anderen Diensten in einem einzigen Prozess kombiniert wird, müssen Sie sie vor dem Debuggen isolieren. Führen Sie hierzu das unter Isolieren des Diensts beschriebene Prozedur aus. Starten Sie am Ende dieses Verfahrens den Dienst neu.

Um die neue PID des Diensts zu ermitteln, geben Sie den folgenden Dienstkonfigurationstoolbefehl (Sc.exe) aus, wobei ServiceName der Name des Diensts ist:

sc queryex ServiceName 

Starten Sie nun WinDbg oder CDB mit dieser Dienstanwendung als Ziel. Hierzu 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 beispielsweise SpoolSv.exe eine PID von 651 aufweist und den Dienst Spooler enthält, sind die folgenden drei Befehle gleichwertig:

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

Nachdem der Debugger gestartet wurde, fahren Sie wie in jeder anderen Debugsitzung im Benutzermodus fort.