我试图在
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中运行的远程程序.我使用远程调试配置调试程序没有问题,但是,当我尝试连接到远程程序时,我收到以下错误:
以下是我将调试器设置为连接到远程应用程序的方法:
我使用以下gdbinit脚本:
handle SIG34 nostop noprint pass
set verbose on
set sysroot
我也试过在两边使用相同的GDB版本并得到相同的结果.在这一点上,我对任何建议持开放态度!
最佳答案 好的,所以我觉得我搞定了.问题似乎是因为我在目标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.