GDB аварийно завершает работу при попытке подключения


Я пытаюсь настроить отладчик gdb в eclipse для подключения к удаленной программе. Вот настройка, которую я использую:

Для разработки ПК (dev) я использую Eclipse Mars на ПК с Windows 7. Eclipse настроен на использование кросс-компилятора GCC/G++ и gdb в качестве удаленного отладчика. Я использую Sourcery CodeBench Lite как инструмент разработки в windows.

  dev> gdb --version
  dev> GNU gdb (Sourcery CodeBench Lite 2014.05-25) 7.7.50.20140217-cvs

Целевой ПК-это RHEL 7, где я использую gdbserver так что я могу отладить мой применение удаленно.

  target> gdbserver --version
  target> GNU gdbserver (GDB) Red Hat Enterprise Linux 7.6.1-64.el7
       Copyright (C) 2013 Free Software Foundation, Inc.

У меня есть две конфигурации отладки в eclipse, одна для удаленной отладки,а другая для подключения к удаленной программе, запущенной на целевом компьютере. У меня нет проблем с отладкой моей программы с помощью конфигурации удаленной отладки, однако, когда я пытаюсь подключиться к удаленной программе, я получаю следующую ошибку: Введите описание изображения здесь

Вот как я настраиваю свой отладчик для подключения к удаленному компьютеру. применение:

Введите описание изображения здесь

Введите описание изображения здесь

Я использую следующий скрипт gdbinit:

 handle SIG34 nostop noprint pass
 set verbose on
 set sysroot 

Я также пытался использовать те же версии GDB с обеих сторон и получил тот же результат. На данный момент я открыт для любых предложений!

1 4

1 ответ:

Ладно, думаю, у меня получилось. Проблема, кажется, из-за старой версии GDB, которую я использовал на целевом компьютере. Как я уже упоминал в своем вопросе, я использовал GDB 7.6.1-64.el7. Чтобы обновить GDB, я загрузил последний исходный код из http://ftp.gnu.org/gnu/gdb/ . Не забудьте обновить GDB и gdbserver. Gdbserver предоставляется в пакете загрузки. Вот шаги, которые я предпринял после того, как я поместил архив gdb в target / tmp:

target_pc/tmp> gtar -xvf gdb-7.11.tar.gz
target_pc/tmp> cd gdb-7.11 
target_pc/tmp/gdb-7.11> ./configure
target_pc/tmp/gdb-7.11> make 
target_pc/tmpgdb-7.11> cd gdb/gdbserver 
target_pc/tmpgdb-7.11/gdb/gdbserver> ./configure
target_pc/tmpgdb-7.11/gdb/gdbserver> make

После успешного встроенный вы можете использовать make install или скопировать двоичный файл gdb и gdbserver и поместить его в каталог /usr / bin или /bin. Также вам нужно перезапустить gdbserver:

 /usr/bin/gdbserver --remote-debug --multi :8000 

Эту строку можно добавить в файл /etc / rc.локальный, так что вы запускаете gdbserver при загрузке linux.