【发布时间】:2014-09-22 13:36:50
【问题描述】:
我的C++项目文件夹结构如下图。
我正在尝试在我的 linux 机器上使用 gdb 调试程序。我的主要功能在 g2o_cli 文件夹中的 g2o.cpp 中。我可以通过
在此文件夹中的文件中放置断点 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 如何获取文件夹路径?如何提供相对文件夹路径?
【问题讨论】:
-
你试过
break optimizer.cpp:<line_number>吗? -
@tohava 是的..我先试过了。它也说同样的错误。
-
您可以在运行 gdb 之前尝试将文件夹添加到您的路径中。我知道这只是一种解决方法,但可能值得一试以弄清楚发生了什么。
-
如果只使用基本名称不起作用(“break optimizer.cpp:NNN”),那么我怀疑该文件未链接,或者未使用调试信息编译。
-
你的主目录真的有一个名为
HOME的子目录吗?
标签: c++ linux gdb breakpoints