You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eclipse GDB无法找到源文件:调试加载C++共享库的Python代码遇阻

解决Eclipse GDB调试Python调用C++共享库时找不到源文件的问题

我之前也碰到过一模一样的场景,用Eclipse Oxygen搭配PyDev调试调用C++共享库的Python代码时,GDB找不到源文件确实挺头疼的,给你几个亲测有效的解决步骤:

1. 先确认C++共享库是带调试信息编译的

GDB要关联源文件,首先得有调试符号支撑。你得确保编译C++共享库的时候,加了调试编译参数:

  • 用GCC/G++的话,一定要加-g(想要更详细的调试信息可以用-ggdb3)
  • 绝对不能加-O这类优化参数,代码优化会打乱行号和源文件的对应关系,GDB根本没法匹配

2. 给Eclipse的GDB配置源文件搜索路径

很多时候GDB找不到源文件,就是因为它不知道去哪找。你可以手动添加搜索路径:

  • 打开「Run > Debug Configurations」,找到你用的C/C++ Attach调试配置
  • 切换到Debugger标签页,找到Source Lookup选项
  • 点击Add,选择「File System Directory」,然后添加你的C++源文件所在的根目录
  • 记得勾选「Search subfolders」,这样子目录里的源文件也能被搜到

3. 检查Python进程的工作目录

如果Python运行的工作目录和你编译C++库时的路径不匹配,GDB也会找不到源文件:

  • 打开PyDev的调试配置,确认Working Directory是你的项目根目录(或者和编译C++库时的相对路径对应的目录)
  • 要是你编译C++库时用的是绝对路径,得确保现在这个路径还存在;如果是相对路径,就得保证Python进程的工作目录和编译时的相对路径一致

4. 手动在GDB控制台指定源文件路径

要是上面的配置都没用,你可以直接在Eclipse的GDB控制台里敲命令:

directory /path/to/your/cpp/source/files

这个命令会直接告诉GDB去指定目录找源文件,执行完再恢复调试,大概率就能定位到断点了

5. 确认Attach的是正确的线程/进程

有时候可能不小心attach到了错误的Python线程或者子进程,导致没法关联C++代码:

  • 在PyDev暂停的时候,看一下Debug视图里的Python线程列表,选执行测试的那个线程去attach
  • 另外要注意,pytest可能会启动子进程,attach的时候要选对对应的进程

内容的提问来源于stack exchange,提问作者xjsc16x

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:46:58