【问题标题】:GDB crashes when trying to attach尝试附加时 GDB 崩溃
【发布时间】:2016-02-29 14:30:10
【问题描述】:

我正在尝试在 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 版本并得到相同的结果。在这一点上,我愿意接受任何建议!

【问题讨论】:

    标签: eclipse gdb cross-compiling gdbserver


    【解决方案1】:

    好的,所以我想我已经成功了。问题似乎是因为我在目标 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。

    【讨论】:

      猜你喜欢
      • 2017-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-25
      • 2014-04-25
      • 1970-01-01
      • 2018-07-31
      相关资源
      最近更新 更多