プロセス サーバーのアクティブ化
Windows 用のデバッグ ツールに含まれるプロセス サーバーは、DbgSrv (dbgsrv.exe) と呼ばれます。 プロセス サーバーをアクティブにするには、管理者特権でコマンド プロンプト ウィンドウを開き (管理者として実行)、dbgsrv コマンドを入力します。
注 管理者特権がなくてもプロセス サーバーをアクティブ化でき、デバッグ クライアントはサーバーに接続できます。 ただし、管理者特権でプロセス サーバーをアクティブ化しない限り、クライアントはプロセス サーバーを検出できません。 デバッグ サーバーを検出する方法については、「プロセス サーバーの検索」を参照してください。
DbgSrv は、名前付きパイプ (NPIPE)、TCP、COM ポート、セキュア パイプ (SPIPE)、および Secure Sockets Layer (SSL) などのいくつかのトランスポート プロトコルをサポートします。
dbgsrv -t npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
dbgsrv -t tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
dbgsrv -t tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
dbgsrv -t com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
dbgsrv -t spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
dbgsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
dbgsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
前述のコマンドのパラメーターには、次のような値があります。
pipe= PipeName
NPIPE または SPIPE プロトコルを使用している場合、PipeName は、パイプの名前として機能する文字列です。 各パイプ名は一意のプロセス サーバーを識別する必要があります。 パイプ名を再利用しようとすると、エラー メッセージが表示されます。 PipeName には、スペースまたは引用符を含めることはできません。 PipeNameに、数値の printf スタイルの書式コード (%x または%d ) を含めることができます。 プロセス サーバーはこれを DbgSrv のプロセス ID に置き換えます。 このような 2 番目のコードは、DbgSrv のスレッド ID に置き換えられます。
注 プロセス サーバーを実行しているコンピューターでファイルとプリンターの共有を有効にする必要があります。 コントロール パネルで、[ネットワークとインターネット]>、>[ネットワークと共有センター]、[詳細な共有設定] に移動します。 [ファイルとプリンターの共有をオンにする] を選択します。
port= ソケット
TCP または SSL プロトコルを使用する場合、ソケット は、ソケットポート番号です。
コロンで区切られたポートの範囲を指定することもできます。 DbgSrv は、この範囲内の各ポートが空いているかどうかをチェックします。 空きポートが見つかり、エラーが発生しなければ、プロセス サーバーが作成されます。 スマート クライアントは、サーバーへの接続に使用されている実際のポートを指定する必要があります。 実際のポートを決定するには、「プロセス サーバーの検索」で説明されているいずれかの方法を使用します。このプロセス サーバーが表示されると、ポートの後にコロンで区切られた 2 つの数字が続きます。 最初の番号は、実際に使用されるポートになります。2 番目は無視できます。 たとえば、ポートが =51:60 として指定され、ポート 53 が実際に使用されていると、検索結果には "port=53:60" が表示されます。 (clicon パラメーターを使用して逆接続を確立している場合、クライアントはこの方法でポートの範囲を指定できますが、プロセス サーバーは実際に使用されるポートを指定する必要があります。)
clicon= クライアント
TCP または SSL プロトコルを使用しclicon パラメーターを指定している場合は、逆方向の接続が開かれます。 これは、プロセス サーバーがクライアントに接続を開始させるのではなく、スマート クライアントに接続しようとすることを意味します。 これは、通常の方向の接続を妨げているファイアウォールがある場合に便利です。 Client は、スマート クライアントが存在するコンピューター、またはスマート クライアントが作成されるコンピューターのネットワーク名または IP アドレスを指定します。 2 つの最初の円記号 (\) は省略可能です。
プロセス サーバーが 1 つの特定のクライアントを探しているため、このメソッドを使用する場合、サーバーに複数のクライアントを接続することはできません。 接続が拒否された場合、または切断された場合は、プロセス サーバーを再起動する必要があります。 -QR コマンド ライン オプションを使用してすべてのアクティブなサーバーを表示すると、逆接続のプロセス サーバーは表示されません。
注 clicon を使用する場合は、プロセス サーバーを作成する前にスマート クライアントを起動するのが最善ですが、通常の順序 (クライアントの前にサーバー) でも構いません。
port= COMPort
COM プロトコルを使用している場合、COMPort は、使用する COM ポートを指定します。 プレフィックス "COM" は省略可能です。たとえば、"com2" と "2" の両方が受け入れられます。
baud= BaudRate
COM プロトコルを使用している場合、BaudRate は、接続が実行されるボー レートを指定します。 ハードウェアでサポートされている任意のボー レートが許可されます。
channel= COMChannel
COM プロトコルを使用している場合、COMChannel は、デバッグ クライアントとの通信に使用する COM チャンネルを指定します。 0 から 254 までの任意の値を指定できます。 異なるチャネル番号を使用して複数の接続に対して 1 つの COM ポートを使用することができます。 (これは、デバッグ ケーブルの COM ポートの使用とは異なります。その状況では、COM ポート内のチャネルを使用することはできません。)
proto= 議定書
SSL または SPIPE プロトコルを使用している場合、Protocol は、Secure Channel (S-Channel) プロトコルを指定します。 文字列 tls1、pct1、ssl2、または ssl3 のいずれかを指定できます。
Cert
SSL または SPIPE プロトコルを使用している場合、Cert は、証明書を指定します。 証明書の名前または証明書の拇印 (証明書のスナップインによって指定された 16 進数の文字列) のいずれかを指定できます。 構文 certuser=Cert を使用すると、デバッガーはシステムストア (既定のストア) で証明書を検索します。 構文 machuser=Cert を使用すると、デバッガーはマシンのストアで証明書を検索します。 指定した証明書は、サーバー認証をサポートする必要があります。
hidden
-QR コマンド ライン オプションを使用してすべてのアクティブなサーバーを表示すると、プロセス サーバーは表示されません。
password= パスワード
スマート クライアントでは、プロセス サーバーに接続するには、指定されたパスワードを入力する必要があります。 Password は、最大 12 文字の英数字文字列を指定できます。
警告TCP、NPIPE、または COM プロトコルでパスワードを使用すると、パスワードが暗号化されていないため、保護の量が少なくなります。 SSL または SPIPE プロトコルでパスワードを使用すると暗号化されます。 セキュリティで保護されたリモート セッションを確立する場合は、SSL または SPIPE プロトコルを使用する必要があります。
ipversion=6
(Windows 6.6.07 以前用のデバッグツールのみ) TCP を使用してインターネットに接続するときに、デバッガーに IP バージョン 4 でなく強制的にバージョン 6 を使用させます。 Windows Vista 以降のバージョンでは、デバッガーは自動的に IP バージョン 6 を既定値に設定しようとするため、このオプションは不要です。
IcfEnable
インターネット接続ファイアウォールがアクティブな場合に、TCP または名前付きパイプ通信に必要なポート接続を有効にします。 既定では、インターネット接続ファイアウォールはこれらのプロトコルで使用されるポートを無効にします。 IcfEnable が TCP 接続で使用されていると、デバッガーは Windows に Socket パラメーターで指定されたポートを開かせます。 IcfEnable が名前付きパイプ接続で使用されている場合、デバッガーは Windows に名前付きパイプに使用されるポート (ポート 139 および 445) を開かせます。 接続が終了しても、デバッガーはこれらのポートを閉じません。
-sifeo Executable
指定されたイメージのイメージ ファイル実行オプション (IFEO) 値を一時停止します。 Executable には、ファイル名拡張子を含む実行可能イメージのファイル名を含める必要があります。 -sifeo オプションを使用すると、IFEO 設定による再帰呼び出しを発生させることなく、-c オプションで作成されたイメージの IFEO デバッガーとして DbgSrv を設定できます。 このオプションは、-c が使用されている場合にのみ使用できます。
-c
DbgSrv で新しいプロセスを作成します。 これを使用して、デバッグするプロセスを作成できます。 これは、デバッガーから新しいプロセスを生成するのと似ていますが、このプロセスは作成時にデバッグされない点が異なります。 このプロセスをデバッグするには、その PID を特定し、スマート クライアントを起動してこのプロセスをデバッグするときに -p オプションを使用します。
s
新しく作成されたプロセスが直ちに一時停止します。 このオプションを使用する場合は、CDB をスマート クライアントとして使用し、-pb コマンド ライン オプションと -p PID を組み合わせてスマート クライアントを起動することをお勧めします。 コマンド ラインに -pb オプションを含めると、デバッガーがアタッチされたときにプロセスが再開されます。それ以外の場合は、~*m コマンドを使用してプロセスを再開できます。
AppCmdLine
作成するプロセスの完全なコマンド ラインを指定します。 AppCmdLine には Unicode 文字列または ASCII 文字列を指定でき、任意の印刷可能な文字を含めることができます。 -c[s] パラメーターの後に表示されるすべてのテキストは、文字列 AppCmdLine を形成するために取得されます。
-x
コマンド ラインの残りの部分が無視されます。 このオプションは、コマンド ラインに不要なテキストを追加する可能性があるアプリケーションから DbgSrv を起動する場合に便利です。
-pc
コマンド ラインの残りの部分が無視されます。 このオプションは、コマンド ラインに不要なテキストを追加する可能性があるアプリケーションから DbgSrv を起動する場合に便利です。 -pc が DbgSrv コマンド ラインの最後の要素である場合、構文エラーが発生します。 この制限を除けば、-pc は -x と同じです。
1 台のコンピューター上で任意の数のプロセス サーバーを起動できます。 ただし、1 つのプロセス サーバーを任意の数のスマート クライアント (それぞれが異なるデバッグ セッションに関与している) で使用できるため、これは通常は必要ありません。