GNU/Linux >> Belajar Linux >  >> Linux

Men-debug proses Linux dari jarak jauh dari Windows dengan gdb dan gdbserver:apa sebenarnya yang dibutuhkan di sisi Windows?

Bangun kembali gdb dengan mendukung platform target. Anda dapat menggunakan Cygwin untuk ini. Contoh untuk platform target 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

Jangan lupa untuk mengonfigurasi ulang rantai alat Anda setelah ini. Untuk mendapatkan nama konfigurasi target, Anda dapat menggunakan:

> echo ${BASH_VERSINFO[5]}

Sekarang ada pluginhttp://marketplace.Eclipse.org/content/direct-remote-c-debugging

Yang memungkinkan Anda meluncurkan gdb di server dari jarak jauh melalui ssh. Memperhatikan pemetaan jalur dan hal lainnya.

Anda tidak perlu server gdb berjalan dari jarak jauh


Saya gagal membangun di Windows, tetapi merasa cukup mudah membangunnya di Linux. Untuk meringkas dan menyelesaikan respons @Eugene:Pertama, siapkan sumber:

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

Unduh kompiler Windows:

sudo apt-get install mingw-w64

Lihat platform konfigurasi target yang ingin Anda debug binari Anda (apa yang harus dimasukkan ke dalam --target parameter):

echo ${BASH_VERSINFO[5]}

Persiapkan makefile yang ditargetkan untuk platform yang Anda inginkan tetapi berjalan di host yang berbeda. Kami mengompilasinya secara statis sehingga tidak bergantung pada DLL atau pustaka lainnya. Kami juga menonaktifkan pembuatan binari lain seperti yang disarankan 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

terakhir, bangun (butuh waktu sekitar 30-60 menit):

make LDFLAGS=-static

Anda dapat menemukan debugger Anda di folder gdb. Ini juga bagus untuk menghilangkan simbol debugging karena setelah membangun executable sangat besar:

strip -s gdb/gdb.exe

Voila! gdb.exe siap dijalankan di Windows dan men-debug executable Linux dari jarak jauh!


Linux
  1. Tonton perintah dan tugas dengan perintah jam tangan Linux

  2. Tentukan versi OS, Linux dan Windows dari Powershell

  3. Apa perbedaan antara file .txt Linux dan Windows (pengodean Unicode)

  1. Konfigurasikan ruang kerja Linux dari jarak jauh dari baris perintah

  2. Baca dan tulis data dari mana saja dengan pengalihan di terminal Linux

  3. Instal Linux Mint dengan Windows 8 | Dual Boot Windows 8 dan Linux Mint 12

  1. Apa VPS Terbaik:Windows atau Linux?

  2. Apakah ada perintah linux untuk menentukan ID jendela yang terkait dengan ID proses tertentu?

  3. Bagaimana cara men-debug kernel Linux dengan GDB dan QEMU?