模板函数内的断点,Eclipse CDT Kepler

时间:2014-04-27 20:37:16

标签: c++ eclipse debugging gdb

我知道之前可能已经问过这个问题,但是我找不到任何满意的答案。我的问题如下:我正在Eclispe CDT Kepler下开发C++。我使用g++4.8.2作为编译器,使用ggdb 7.6作为调试器(均通过macports安装),因此不是OS X附带的clang工具(我的操作系统是OS X)小牛)。

现在,在Eclipse中,我可以设置断点并逐步调试模板函数中的EXCEPT(模板函数中的断点只是被忽略)。模板函数在实现文件(.cpp扩展名)中定义,并且是独立函数,而不是任何类的成员。我还将qt creatorggdb设置为调试工具,并获得相同的行为,在模板函数中忽略断点,并获得以下警告(仅在尝试在模板函数中添加断点时): / p>

&"warning: GDB: Failed to set controlling terminal: Operation not supported on socket\n"

因此,它必须是ggdb问题。

Apple的默认llvm有效,但我必须使用g++,因为它支持OpenMP,并且无法将llvmg++结合使用。

你是否碰到了这种烦人的行为?这是ggdb的已知问题吗?您是否了解此问题的任何解决方案,即在使用g++进行编译时如何在模板函数中设置断点?

谢谢!

1 个答案:

答案 0 :(得分:1)

我不记得gdb 7.6中这个区域的具体错误。

通常,如果出现这种问题,则是由于缺少debuginfo - 编译器问题,而不是调试器问题。但是,这里没有足够的信息真正了解。

当我遇到这样的问题时,我通常使用objdump来查看debuginfo并搜索我感兴趣的函数。