プロセス サーバーのアクティブ化
Debugging Tools for Windows に含まれているプロセス サーバーは、DbgSrv (dbgsrv.exe) と呼ばれます。 プロセス サーバーをアクティブ化するには、管理者特権のコマンド プロンプト ウィンドウ (管理者として実行) を開き、dbgsrv コマンドを入力します。
注 管理者特権を持たずにプロセス サーバーをアクティブ化でき、デバッグ クライアントはサーバーに接続できます。 ただし、管理者特権でアクティブ化されていない限り、クライアントはプロセス サーバーを検出できません。 デバッグ サーバーを検出する方法については、「プロセス サーバーの検索」を参照してください。
大事な
リモート デバッグを使用する場合は、セキュリティに関する重要な考慮事項があります。 セキュア モードの有効化に関する情報を含む詳細については、「Security During Remote Debugging」および「Security Considerations for Windows Debugging Tools」を参照してください。
DbgSrv では、名前付きパイプ (NPIPE)、TCP、COM ポート、セキュア パイプ (SPIPE)、Secure Sockets Layer (SSL) など、複数のトランスポート プロトコルがサポートされています。
推奨される接続方法と、いくつかの追加のセキュリティ
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]
セキュリティで保護されていない接続方法の を
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 npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] [[-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]
パラメーター
前のコマンドのパラメーターには、次の値を指定できます。
pipe=PipeName
NPIPE または SPIPE プロトコルを使用する場合、PipeName はパイプの名前として機能する文字列です。 各パイプ名は、一意のプロセス サーバーを識別する必要があります。 パイプ名を再利用しようとすると、エラー メッセージが表示されます。
PipeName には、スペースまたは引用符を含めることはできません。
PipeName には、%x や %dなどの数値 printfスタイルの書式コードを含めることができます。 プロセス サーバーはこれを DbgSrv のプロセス ID に置き換えます。 2 つ目のコードは、DbgSrv のスレッド ID に置き換えられます。
注 プロセス サーバーを実行しているコンピューターでファイルとプリンターの共有を有効にする必要がある場合があります。 コントロール パネルで、[ネットワークとインターネット > ネットワークと共有センター]> [共有の詳細設定]に移動します。 [ファイルとプリンターの共有
port=ソケット
TCP または SSL プロトコルを使用する場合、ソケット はソケット ポート番号です。
コロンで区切ってポートの範囲を指定することもできます。 DbgSrv は、この範囲内の各ポートを確認して、空きがあるかどうかを確認します。 空きポートが検出され、エラーが発生しない場合は、プロセス サーバーが作成されます。 スマート クライアントは、サーバーへの接続に使用される実際のポートを指定する必要があります。 実際のポートを確認するには、「プロセス サーバーの検索
clicon=クライアント
TCP または SSL プロトコルを使用し、clicon パラメーターを指定すると、リバース接続 が開きます。 つまり、プロセス サーバーは、クライアントが連絡先を開始するのではなく、スマート クライアントに接続しようとします。 これは、通常の方向の接続を妨げているファイアウォールがある場合に役立ちます。
クライアント は、スマート クライアントが存在するか作成されるコンピューターのネットワーク名または IP アドレスを指定します。 2 つの最初の円記号 (\) は省略可能です。
プロセス サーバーは 1 つの特定のクライアントを探しているため、この方法を使用する場合、複数のクライアントをサーバーに接続することはできません。 接続が拒否された場合、または切断された場合は、プロセス サーバーを再起動する必要があります。 -QR コマンドライン オプションを使用してすべてのアクティブ サーバーを表示する場合、逆接続プロセス サーバーは表示されません。
port=COMPort
COM プロトコルを使用する場合、COMPort は、使用する COM ポートを指定します。 プレフィックス "COM" は省略可能です。たとえば、"com2" と "2" の両方を使用できます。
ボー=BaudRate
COM プロトコルを使用する場合、BaudRate は、接続を実行するボー レートを指定します。 ハードウェアでサポートされているボー レートは許可されます。
channel=COMChannel
COM プロトコルを使用する場合、COMChannel は、デバッグ クライアントとの通信に使用する COM チャネルを指定します。 これには、0 ~ 254 の任意の値を指定できます。 異なるチャネル番号を使用して、複数の接続に 1 つの COM ポートを使用できます。 (これは、デバッグ ケーブルに COM ポートを使用する場合とは異なります。このような状況では、COM ポート内でチャネルを使用することはできません)。
proto=プロトコル
SSL または SPIPE プロトコルを使用する場合、プロトコル は、セキュア チャネル (S チャネル) プロトコルを指定します。 これには、tls1、pct1、ssl2、または ssl3 のいずれかの文字列を指定できます。
証明書 の
SSL または SPIPE プロトコルを使用する場合は、証明書
非表示の を
他のユーザーが -QR コマンドライン オプションを使用してすべてのアクティブ なサーバーを表示するときに、プロセス サーバーが表示されないようにします。
password=Password
プロセス サーバーに接続するには、スマート クライアントが指定したパスワードを指定する必要があります。
パスワード には、最大 12 文字の任意の英数字文字列を使用できます。
大事な
TCP、NPIPE、または COM プロトコルでパスワードを使用すると、パスワードが暗号化されないため、保護の量はごくわずかです。 SSL または SPIPE プロトコルと共にパスワードを使用すると、パスワードが暗号化されます。 より安全なリモート セッションを確立する場合は、SSL または SPIPE プロトコルを使用する必要があります。
ipversion=6
(Windows 6.6.07 以前のデバッグ ツールのみ)TCP を使用してインターネットに接続するときに、デバッガーでバージョン 4 ではなく IP バージョン 6 を使用するように強制します。 Windows Vista 以降のバージョンでは、デバッガーは IP バージョン 6 の自動既定値を試み、このオプションを不要にします。
IcfEnable の
インターネット接続ファイアウォールがアクティブな場合に、デバッガーで TCP または名前付きパイプ通信に必要なポート接続を有効にします。 既定では、インターネット接続ファイアウォールは、これらのプロトコルで使用されるポートを無効にします。 TCP 接続 IcfEnable を使用すると、デバッガーによって、Socket パラメーターで指定されたポートが Windows によって開きます。 名前付きパイプ接続 IcfEnable を使用すると、デバッガーによって、名前付きパイプに使用されるポート (ポート 139 および 445) が Windows によって開きます。 デバッガーは、接続が終了した後にこれらのポートを閉じません。
-sifeoExecutable
指定されたイメージのイメージ ファイル実行オプション (IFEO) 値を中断します。
実行可能 には、ファイル名拡張子を含む実行可能イメージのファイル名を含める必要があります。
-sifeo オプションを使用すると、-c オプションによって作成されたイメージの IFEO デバッガーとして DbgSrv を設定できます。IFEO 設定による再帰的な呼び出しは発生しません。 このオプションは、-c
-c
DbgSrv で新しいプロセスが作成されます。 これを使用して、デバッグするプロセスを作成できます。 これは、デバッガーから新しいプロセスを生成するのと似ていますが、このプロセスは作成時にデバッグされません。 このプロセスをデバッグするには、その PID を確認し、スマート クライアントを起動するときに -p オプションを使用してこのプロセスをデバッグします。
の
新しく作成されたプロセスを直ちに中断させます。 このオプションを使用する場合は、CDB をスマート クライアントとして使用し、-pb コマンド ライン オプションを使用して、-p PIDと組み合わせてスマート クライアントを起動することをお勧めします。 コマンド ラインに -pb オプションを含めると、デバッガーがアタッチされたときにプロセスが再開されます。それ以外の場合は、~*m コマンドを使用してプロセスを再開できます。
AppCmdLine の
作成するプロセスの完全なコマンド ラインを指定します。
AppCmdLine には Unicode または ASCII 文字列を使用でき、印刷可能な任意の文字を含めることができます。
-x
コマンド ラインの残りの部分を無視します。 このオプションは、不要なテキストをコマンド ラインに追加する可能性があるアプリケーションから DbgSrv を起動する場合に便利です。
-pc
コマンド ラインの残りの部分を無視します。 このオプションは、不要なテキストをコマンド ラインに追加する可能性があるアプリケーションから DbgSrv を起動する場合に便利です。
-pc が DbgSrv コマンド ラインの最終的な要素である場合、構文エラーが発生します。 この制限とは別に、-pc
1 台のコンピューターで任意の数のプロセス サーバーを起動できます。 ただし、1 つのプロセス サーバーは任意の数のスマート クライアント (それぞれ異なるデバッグ セッションに参加) で使用できるため、これは一般的に不要です。