我的C ++项目文件夹结构如下所示。
我正在尝试使用我的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如何获取文件夹路径?如何提供相对文件夹路径?
答案 0 :(得分:0)
您可以在x86上使用的脏黑客是使用int3
。只需在您想要断点的代码中使用语句asm volatile ("int 3");
。