GNU/Linux >> Znalost Linux >  >> Linux

Vzdálené ladění linuxového procesu z Windows pomocí gdb a gdbserver:co přesně je potřeba na straně Windows?

Stačí znovu sestavit gdb s podporou cílové platformy. K tomu můžete použít Cygwin. Příklad pro cílovou platformu 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

Poté nezapomeňte znovu nakonfigurovat svůj toolchain. Chcete-li získat název cílové konfigurace, můžete použít:

> echo ${BASH_VERSINFO[5]}

Nyní existuje pluginhttp://marketplace.eclipse.org/content/direct-remote-c-debugging

Což vám umožňuje spouštět gdb na serveru vzdáleně přes ssh. Stará se o mapování cest a další věci.

Nepotřebujete, aby server gdb běžel vzdáleně


Nepodařilo se mi postavit na Windows, ale zjistil jsem, že je docela snadné je postavit pod Linuxem. Abychom shrnuli a dokončili odpověď @Eugene:Nejprve si připravte zdroje:

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

Stáhněte si kompilátor Windows:

sudo apt-get install mingw-w64

Podívejte se na cílovou konfigurační platformu, na které chcete ladit své binární soubory (co vložit do parametru --target):

echo ${BASH_VERSINFO[5]}

Připravte si makefiles cílené pro vaši požadovanou platformu, ale běžící na jiném hostiteli. Kompilujeme jej staticky, takže nezávisí na žádných DLL nebo jiných knihovnách. Také deaktivujeme vytváření dalších binárních souborů, jak navrhuje 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

nakonec sestavte (trvá to 30–60 minut):

make LDFLAGS=-static

Svůj debugger najdete ve složce gdb. Je také dobré jej zbavit ladicích symbolů, protože po sestavení spustitelného souboru je obrovský:

strip -s gdb/gdb.exe

Voila! gdb.exe připraven ke spuštění ve Windows a vzdálenému ladění spustitelných souborů Linuxu!


Linux
  1. Sledujte příkazy a úkoly pomocí příkazu watch v systému Linux

  2. Čtěte a zapisujte data odkudkoli s přesměrováním v terminálu Linux

  3. Flatpak na Linuxu:Co to je a jak s ním instalovat aplikace

  1. Jaká jsou nativní volání OS/systému Windows a Linuxu prováděná z malloc()?

  2. Zjistěte verzi OS, Linux a Windows z Powershell

  3. Jaké jsou rozdíly mezi soubory .txt pro Linux a Windows (kódování Unicode)

  1. Nakonfigurujte pracovní prostor Linuxu vzdáleně z příkazového řádku

  2. Jaký je ekvivalent linuxového ~ (tilda) ve Windows?

  3. Jaká je definice relace v linuxu?