【问题标题】:Eclipse: gdbserver doesn't find source filesEclipse:gdbserver 找不到源文件
【发布时间】:2017-06-04 10:57:18
【问题描述】:

我正在 Eclipse CodeSourcery IDE 中调试一个 C 项目。该项目在 linux-arm 设备中运行,因此我使用 gdbserver 交叉编译和调试它。我的项目由一个主程序和一些共享库组成,我用 -g3 标签编译(也试过 -g)。一切都正确构建:链接器找到所有依赖项,我将编译后的文件复制到远程机器并运行

$gdbserver :2159 Test &

我可以在配置 IDE 的调试器后远程开始调试。 我正确调试,直到我“进入”一个库函数。我收到一条输出消息

[New Thread 1032]

没有错误提示,除了我无法在函数内部调试,但函数正确执行并且我可以继续我的主程序。后来,在另一个库中,我遇到了分段错误。

我假设 gdbserver 在我的本地机器上搜索源,因为我可以调试我的主程序。为什么我不能调试我的库的源代码?

谢谢

【问题讨论】:

  • 所以所有的库都是用-O0-g3编译的?
  • 是的,没错

标签: c eclipse shared-libraries gdbserver


【解决方案1】:

How to runtime debug shared libraries?

查看那个问题,您可以看到 gdb 只需使用函数名即可为库内的函数分配断点。

(gdb) b func
Function "func" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (func) pending.

【讨论】:

  • 不完全是我的问题。当 gdbserver 找不到库的源文件时,我该怎么做?
猜你喜欢
  • 2017-01-20
  • 1970-01-01
  • 2017-02-09
  • 2015-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多