GNU/Linux >> Linux の 問題 >  >> Linux

gdb と gdbserver を使用して Windows から Linux プロセスをリモートでデバッグする:Windows 側では正確に何が必要ですか?

ターゲット プラットフォームをサポートする gdb を再構築するだけです。これには Cygwin を使用できます。RHEL ターゲット プラットフォームの例:

> wget http://ftp.gnu.org/gnu/gdb/gdb-<ver>.tar.xz
> tar -xJvf gdb-<ver>.tar.xz
> mkdir -p gdb-<ver>/build/x86_64-redhat-linux-gnu
> cd gdb-<ver>/build/x86_64-redhat-linux-gnu
> ../../configure --target=x86_64-redhat-linux-gnu
> make && make install
> x86_64-redhat-linux-gnu-gdb.exe --version

この後、ツールチェーンを再構成することを忘れないでください。ターゲット構成名を取得するには、次を使用できます:

> echo ${BASH_VERSINFO[5]}

現在、プラグインがありますhttp://marketplace.eclipse.org/content/direct-remote-c-debugging

これにより、ssh を介してリモートでサーバー上で gdb を起動できます。パス マッピングなどを処理します。

gdb サーバーをリモートで実行する必要はありません


Windows ではビルドできませんでしたが、Linux では非常に簡単にビルドできました。 @Eugene の回答を要約して完成させるには:まず、ソースを準備します:

wget http://ftp.gnu.org/gnu/gdb/gdb-<ver>.tar.xz
tar -xJvf gdb-<ver>.tar.xz
mkdir -p gdb-<ver>/build/x86_64-redhat-linux-gnu
cd gdb-<ver>/build/x86_64-redhat-linux-gnu

Windows コンパイラをダウンロード:

sudo apt-get install mingw-w64

バイナリをデバッグするターゲット構成プラットフォームを確認します ( --target パラメータに何を入れるか):

echo ${BASH_VERSINFO[5]}

目的のプラットフォームを対象とするが、別のホストで実行されるメイクファイルを準備します。 DLL や他のライブラリに依存しないように、静的にコンパイルします。また、gdb wiki が示唆するように、他のバイナリのビルドを無効にします:

../../configure --host=x86_64-w64-mingw32 --target=x86_64-pc-linux-gnu --enable-static=yes --disable-interprocess-agent --disable-binutils --disable-ld --disable-gold --disable-gas --disable-sim --disable-gprof

最後に、ビルドします (30 ~ 60 分かかります):

make LDFLAGS=-static

デバッガーは gdb フォルダーにあります。ビルド後の実行可能ファイルは巨大なので、デバッグ シンボルを削除することもお勧めします:

strip -s gdb/gdb.exe

出来上がり! gdb.exe を Windows で実行し、Linux 実行可能ファイルをリモートでデバッグする準備ができました!


Linux
  1. 現在の Linux カーネル ソースは何ですか?

  2. Linux と Windows の .txt ファイル (Unicode エンコーディング) の違いは何ですか?

  3. Linuxでのセッションの定義は何ですか?

  1. Linuxのwatchコマンドでコマンドとタスクを監視する

  2. コマンドラインからリモートでLinuxワークスペースを構成する

  3. Linuxターミナルでリダイレクトを使用して、どこからでもデータを読み書きできます

  1. Linux上のFlatpak:それは何であり、それを使ってアプリをインストールする方法

  2. LinuxMintをWindows8にインストールする|デュアルブートWindows8およびLinuxMint12

  3. 最高のVPSは何ですか:WindowsまたはLinux?