Eclipse GDB无法找到源文件

时间:2018-04-04 16:49:40

标签: c++ eclipse gdb pydev

我的工作区位于我的主目录中。

我目前正在尝试调试使用Eclipse Oxygen和PyDev加载共享C ++库的python代码。我可以很好地调试Python文件。

我运行程序(pytest单元测试,如果这很重要)在调试共享库之前在测试中的某个地方使用断点(但在加载之后)然后运行C / C ++附加到应用程序调试并附加到暂停了python线程。然后我在我的C ++代码中设置断点并恢复python,并从GDB控制台输出中获取:

  

没有名为/ home / myname /.../ models / sourcefile.cpp

的源文件

执行ls /home/myname/.../models清楚地表明该文件存在。

我不确定这是否重要,但我的库是用CMake编译的,其中源和构建目录是兄弟姐妹。例如。 workspace是〜/ dev,source在〜/ dev / sourceFolder中,构建文件在〜/ dev / buildFolder

更新

我能够使用gdb python <thread_number>在控制台中手动附加到正在运行的Python调试线程。这工作并找到我的源文件就好了,允许我在控制台中手动调试。如果我能够在Eclipse中使用它,它仍然会更快,更简单。

我在C ++调试配置设置中尝试过的事情:

  • 在偏好设置中,更改C / C ++ - &gt;调试 - &gt; Source Lookup有 绝对文件路径优先,配置文件优先,相对文件路径 第一
  • 在CppDebug设置调试器选项卡中,手动将构建和源目录添加到共享库
  • 在CppDebug设置源选项卡中,在源查找路径中手动添加源目录

这些似乎都没有做太多。

1 个答案:

答案 0 :(得分:0)

对于cmake项目:

启动配置可能默认使用错误的可执行文件,因此请转到启动配置=> main并检查“ C / C ++应用程序” 从此更改:build / default / 为此:build / cmake.debug.linux.x86_64 /

(您可以通过“搜索项目”按钮执行此操作。 然后,它将选择正确的调试版本,并且在调试时会找到所有源代码。