首页 文章

使用Eclipse CDT和GDB进行调试

提问于
浏览 1345
17

我有使用共享库的Eclipse CDT C应用程序项目 . 该库使用调试信息进行编译,其源可在正确的路径中使用 .

现在我尝试使用Eclipse和GDB调试我的应用程序 . 如果我在我的应用程序源代码中放置断点,一切都很好 . 然后我打开包含的共享库的源文件并将断点放在那里 . 启动调试会话时,我被警告 "No source file named xxx.cpp in loaded symbols" 并且执行没有停止在该点 . 如果我在调试会话已经运行时将相同的断点放在同一个文件中,一切正常 . 怎么了?

谢谢你的帮助 .

2 回答

  • 7

    我有同样的问题,尝试在Qt插件中设置断点(基于Windows DLL,s) .

    我发现这个讨论和解决方案对我来说非常合适,虽然我使用的是更新版本的Eclipse而不是听起来像是同样的问题 .

    http://www.eclipse.org/forums/index.php?t=msg&goto=555294&S=2aed4155e654e34cb2e84a6fb23de9bf#msg_555294

    基本上,它是使用支持延迟断点的旧gdb协议 . 使用“标准创建进程启动器”而不是“调试配置”中的“GDB(DSF)创建进程启动器”,我现在可以设置所有的DLL断点 .

    版本:Helios Release Build id:20100617-1415

    CDT和GDB版本7.0.0 .

    祝好运!

  • 7

    I found one topic that may answer this question: Why does Eclipse CDT ignore breakpoints?

    可能是您尝试在尚未加载的共享库中设置断点 . 在库加载之前,这将无效 . 较新的gdb允许设置延迟断点,但CDT可能尚未支持 . 解决方法是在已加载相关共享库时将从头开始可用的位置设置断点 . 然后在共享库中设置另一个断点 . 现在它应该工作 . 这有点单调乏味,但通常都有效 .

    这是一件衣服吗?我正在使用CDT v6.0.0.200906161748和GDB v6.8

相关问题