尝试连接时GDB崩溃

时间:2016-02-29 14:30:10

标签: eclipse gdb cross-compiling gdbserver

我正在尝试在eclipse中设置gdb调试器以附加到远程程序。这是我正在使用的设置:

对于开发PC(dev),我在Windows 7 PC上使用Eclipse Mars。 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

目标PC是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中有两个调试配置,一个用于远程调试,另一个用于连接到在目标PC中运行的远程程序。我使用远程调试配置调试程序没有问题,但是,当我尝试连接到远程程序时,我收到以下错误: enter image description here

以下是我将调试器设置为连接到远程应用程序的方法:

enter image description here

enter image description here

我使用以下gdbinit脚本:

 handle SIG34 nostop noprint pass
 set verbose on
 set sysroot 

我也试过在两边使用相同的GDB版本并得到相同的结果。在这一点上,我愿意接受任何建议!

1 个答案:

答案 0 :(得分:2)

好的,所以我觉得我搞定了。问题似乎是因为我在目标PC上使用的旧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.local,以便在linux启动时启动gdbserver。