Windbg ユーザーモードのリモート デバッグ セッションを開始するための最良のテクニック
-
09-06-2019 - |
質問
Windbg ユーザーモードのリモート デバッグ セッションを開始するためのお気に入りのテクニックは何ですか?他のテクニックよりもこのテクニックを好むのはなぜですか?(長所短所)
Windows 用デバッグ ツールのヘルプ ファイルの「リモート デバッグ」セクションに記載されているように、windbg を使用してユーザー モード リモート デバッグを実行するには少なくとも 4 つの異なる方法があります。
- ターゲット上でアプリを実行し、ホスト Windbg からそれにアタッチします
- ホストの Windbg に Remote.exe を使用してターゲット上でアプリを起動させます。
- 「スマート クライアント」ホスト Windbg に、ターゲット上で実行されているプロセス サーバー経由でターゲット上でアプリを起動させる
- オプション「-server」を使用してターゲット マシン上で Windbg インスタンスを実行し、サーバーを自動的に起動し、2 番目のマシンからサーバーに接続します。
解決
「最善の」解決策はありません。それぞれの可能性には長所と短所があるため、それらをすべて理解することが重要です。それは次のようないくつかの要因によって決まります。
- シンボルはどこにありますか
- OS シンボルをダウンロードするためにインターネットにアクセスできる PC
- サーバーにコピーできるデータの量 (クライアントは、単一の Exe だけであればよく受け入れられることがよくあります)
- クライアントとサーバー間の帯域幅はどれくらいですか
- CDB/WinDbg だけの他のコマンドが必要ですか。CMD にアクセスしてから、remote.exe を検討してください。
- サーバー側で対応できるのは、多くの不可解なコマンドを簡単に指示できるデバッグ専門家、またはコマンド プロンプトの起動方法をほとんど知らない一般ユーザーです。
- 双方がプライベート ネットワーク内にあるため、相互にアクセスするには「中間者」サーバーが必要です (または、代わりにポート転送が必要ですが、IT 担当者はこれを望んでいないため、設定に数日かかる場合があります)上)
これら 4 つのオプションのうち、クライアントは多くの場合、あなたが行っていることを正確に確認したいため、RDP セッション、Teamviewer などを必要とすることを忘れないでください。それは彼らも理解していることだ。
他のヒント
オプション 1 が最もシンプルなので、私のお気に入りです。WinDbg に適切な作業ディレクトリを設定させたり、コマンド ライン引数を渡したりすることを心配することなく、通常の方法でアプリを起動できます。
幸いなことに、これが機能しなかったケースには遭遇したことがありません。
私はオプション 4 (-server) を使用することが多いです。これは、TCP 接続がタイムアウトするまでカーネル デバッガーに侵入したときに「ポップ」しない唯一のオプションだからです。しかし、これはより複雑であり、完全に満足できるものではありません。そこで私は「ベストプラクティス」を探しています。
所属していません StackOverflow