Я пытаюсь удаленно отлаживать приложения на сервере в моей локальной сети.
Сервер:
$ uname -a
Linux broatyctl.localdomain 3.6.11.2-rt33.39.el6rt.x86_64 #1 SMP PREEMPT RT Thu Jul 4 06:46:48 EDT 2013 x86_64 x86_64 x86_64 GNU/Linux
$ gdbserver --version
GNU gdbserver (GDB) Red Hat Enterprise Linux (7.2-60.el6_4.1)
Copyright (C) 2010 Free Software Foundation, Inc.
gdbserver is free software, covered by the GNU General Public License.
This gdbserver was configured as "x86_64-redhat-linux-gnu"
Рабочая станция:
$ uname -a
Linux workstation.localdomain 3.12.7-300.fc20.x86_64 #1 SMP Fri Jan 10 15:35:31 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
$ gdb --version
GNU gdb (GDB) Fedora 7.6.50.20130731-16.fc20
Я собрал приложение «Hello World» на рабочей станции, и оно работает без ошибок как на рабочей станции, так и на сервере.
Оболочка 1:
$gdbserver localhost:2345 CrossTest
Оболочка 2:
$ gdb CrossTest
(gdb)target extended-remote localhost:2345
(gdb)run
Сервер:
$ gdbserver workstation.ip.address:2345 CrossTest
Рабочая станция:
$ gdb CrossTest
(gdb)target extended-remote server.ip.address:2345
(gdb)cont
Выход GDB
(gdb) cont
Continuing.
Program received signal SIGSEGV, Segmentation fault.
0x00007f2a3b247d50 in ?? ()
(gdb)
gdbserver сообщает мне, что есть входящее соединение, но оно не записывает мое приветственное сообщение.
Есть идеи?
Постскриптум Я уже опубликовал этот вопрос на linuxquestions.org некоторое время назад. Я не думаю, что это был правильный форум, поэтому я пытаюсь здесь попытаться.
Компиляция с -ggdb вместо -g AND с использованием целевого пульта вместо расширенного-удаленного сделала это.
Других решений пока нет …