次の方法で共有


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

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

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

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

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

sc queryex ServiceName 

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

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

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

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