次の方法で共有


サービス アプリケーションの手動デバッグ

開始後にサービス アプリケーションに手動でアタッチすることは、実行中のユーザー モード プロセスのデバッグとよく似ています。

TList ツール/s オプションを付けて使用して、実行中の各プロセスと各プロセスでアクティブなサービスのプロセス ID (PID) を表示します。

デバッグするサービス アプリケーションが単一のプロセス内で他のサービスと組み合わされている場合は、デバッグする前に分離する必要があります。 これを行うには、「サービスの分離」で説明されている手順に従います。 この手順の最後に、サービスを再起動します。

サービスの新しい PID を確認するには、以下のサービス構成ツール (Sc.exe) コマンドを発行します。ここで、ServiceName はサービスの名前です。

sc queryex ServiceName 

次に、このサービス アプリケーションをターゲットとして WinDbg または CDB を起動します。 これを行うには、3 つの方法があります。-p オプションで PID を指定するか、-pn オプションで実行可能ファイル名を指定するか (実行可能ファイル名が一意の場合)、または -psn オプションでサービス名を指定します。

たとえば、プロセス SpoolSv.exeの PID が 651 で、Spooler という名前のサービスが含まれている場合、次の 3 つのコマンドは同等です。

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

デバッガーが起動したら、他のユーザー モード デバッグ セッションと同様に続行します。