2016-02-29 72 views
4

我试图在eclipse中设置gdb调试器来连接到远程程序。这里是我正在使用的设置:试图连接时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版本,并得到了相同的结果。在这一点上,我愿意接受任何建议!

回答

2

好的,所以我觉得我的工作。这个问题似乎是因为我在目标PC上使用的旧版GDB版本。正如我在我的问题中提到的,我使用的是GDB 7.6.1-64.el7。为了更新GDB,我从http://ftp.gnu.org/gnu/gdb/下载了最新的源代码。请记住更新gdb和gdbserver。 gdbserver在下载包中提供。下面是我拿了之后我把GDB档案目标的/ 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安装或复制的GDB和gdbserver的二进制文件,并把它到/ usr/bin中或/ bin目录。你也需要重新启动gdbserver的:

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

您可以添加这一行到/etc/rc.local让你开始在Linux启动的gdbserver的。