Windbg ユーザーモードのリモート デバッグ セッションを開始するための最良のテクニック

StackOverflow https://stackoverflow.com/questions/52855

質問

Windbg ユーザーモードのリモート デバッグ セッションを開始するためのお気に入りのテクニックは何ですか?他のテクニックよりもこのテクニックを好むのはなぜですか?(長所短所)

Windows 用デバッグ ツールのヘルプ ファイルの「リモート デバッグ」セクションに記載されているように、windbg を使用してユーザー モード リモート デバッグを実行するには少なくとも 4 つの異なる方法があります。

  1. ターゲット上でアプリを実行し、ホスト Windbg からそれにアタッチします
  2. ホストの Windbg に Remote.exe を使用してターゲット上でアプリを起動させます。
  3. 「スマート クライアント」ホスト Windbg に、ターゲット上で実行されているプロセス サーバー経由でターゲット上でアプリを起動させる
  4. オプション「-server」を使用してターゲット マシン上で Windbg インスタンスを実行し、サーバーを自動的に起動し、2 番目のマシンからサーバーに接続します。
役に立ちましたか?

解決

「最善の」解決策はありません。それぞれの可能性には長所と短所があるため、それらをすべて理解することが重要です。それは次のようないくつかの要因によって決まります。

  • シンボルはどこにありますか
  • OS シンボルをダウンロードするためにインターネットにアクセスできる PC
  • サーバーにコピーできるデータの量 (クライアントは、単一の Exe だけであればよく受け入れられることがよくあります)
  • クライアントとサーバー間の帯域幅はどれくらいですか
  • CDB/WinDbg だけの他のコマンドが必要ですか。CMD にアクセスしてから、remote.exe を検討してください。
  • サーバー側で対応できるのは、多くの不可解なコマンドを簡単に指示できるデバッグ専門家、またはコマンド プロンプトの起動方法をほとんど知らない一般ユーザーです。
  • 双方がプライベート ネットワーク内にあるため、相互にアクセスするには「中間者」サーバーが必要です (または、代わりにポート転送が必要ですが、IT 担当者はこれを望んでいないため、設定に数日かかる場合があります)上)

これら 4 つのオプションのうち、クライアントは多くの場合、あなたが行っていることを正確に確認したいため、RDP セッション、Teamviewer などを必要とすることを忘れないでください。それは彼らも理解していることだ。

他のヒント

オプション 1 が最もシンプルなので、私のお気に入りです。WinDbg に適切な作業ディレクトリを設定させたり、コマンド ライン引数を渡したりすることを心配することなく、通常の方法でアプリを起動できます。

幸いなことに、これが機能しなかったケースには遭遇したことがありません。

私はオプション 4 (-server) を使用することが多いです。これは、TCP 接続がタイムアウトするまでカーネル デバッガーに侵入したときに「ポップ」しない唯一のオプションだからです。しかし、これはより複雑であり、完全に満足できるものではありません。そこで私は「ベストプラクティス」を探しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top