【发布时间】: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