无法在gdb中设置断点

时间:2014-07-30 19:00:06

标签: c++ linux gdb breakpoints

我的C ++项目文件夹结构如下所示。

enter image description here

我正在尝试使用我的linux机器中的gdb来调试程序。我的主要功能是g2o.cpp,它位于g2o_cli文件夹中。我可以通过

在这个文件夹中的文件中放置断点
 break g2o.cpp:<line_number>

但是我无法在其他文件夹中的文件中放置断点,例如,'core'文件夹中的文件optimizer.cpp。我尝试从我的主目录中提供绝对路径

break ~/HOME/g2o/core/optimizer.cpp:<line_number>

但它出错了

  No source file named ~/HOME/g2o/core/optimizer.cpp

我也尝试过../../core/optimizer.cpp而不是绝对路径。它仍然没有用。

我看到了类似的问题here。但答案中提到的任何可能的原因都不适用于我的情况。文件optimizer.cpp不是共享库,整个project是使用cmake编译的。

gdb如何获取文件夹路径?如何提供相对文件夹路径?

1 个答案:

答案 0 :(得分:0)

您可以在x86上使用的脏黑客是使用int3。只需在您想要断点的代码中使用语句asm volatile ("int 3");