Basta ricostruire gdb con il supporto della piattaforma di destinazione. Puoi usare Cygwin per questo. Esempio per la piattaforma di destinazione 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
Non dimenticare di riconfigurare la tua toolchain dopo questo. Per ottenere il nome della configurazione di destinazione, puoi usare:
> echo ${BASH_VERSINFO[5]}
Ora c'è un pluginhttp://marketplace.eclipse.org/content/direct-remote-c-debugging
Che ti consente di avviare gdb sul server in remoto tramite ssh. Si occupa della mappatura dei percorsi e di altre cose.
Non è necessario che il server gdb sia eseguito in remoto
Non sono riuscito a creare su Windows, ma ho trovato abbastanza facile crearlo sotto Linux. Per riassumere e completare la risposta di @Eugene:Per prima cosa, prepara le fonti:
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
Scarica il compilatore Windows:
sudo apt-get install mingw-w64
Controlla la piattaforma di configurazione di destinazione su cui desideri eseguire il debug dei tuoi file binari (cosa inserire nel parametro --target):
echo ${BASH_VERSINFO[5]}
Prepara i makefile mirati per la piattaforma desiderata ma in esecuzione su un host diverso. Lo compiliamo in modo statico in modo che non dipenda da alcuna DLL o altre librerie. Disabilitiamo anche la creazione di altri binari come suggerisce il wiki di gdb:
../../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
infine, crea (richiede circa 30-60 minuti):
make LDFLAGS=-static
Puoi trovare il tuo debugger nella cartella gdb. È anche utile rimuoverlo dai simboli di debug poiché dopo la creazione dell'eseguibile è enorme:
strip -s gdb/gdb.exe
Ecco! gdb.exe pronto per essere eseguito in Windows ed eseguire il debug remoto degli eseguibili Linux!