如何调试GDB中运行的Python辅助脚本(VSCode环境)
调试GDB加载的Python脚本(VSCode环境)
下面是在VSCode中调试GDB自定义Python脚本的具体步骤:
方法一:通过调试服务器连接(推荐)
1. 修改你的GDB Python脚本
在脚本的起始位置(自定义命令实现前)添加调试启动代码:
import ptvsd # 开启调试服务,绑定本地5678端口 ptvsd.enable_attach(address=('localhost', 5678), redirect_output=True) # 等待VSCode调试器连接,避免代码提前执行 ptvsd.wait_for_attach()
2. 配置VSCode调试项
在工作区的.vscode/launch.json中添加以下配置:
{ "version": "0.2.0", "configurations": [ { "name": "Attach to GDB Python", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 }, "pathMappings": [ { "localRoot": "${workspaceFolder}", "remoteRoot": "${workspaceFolder}" } ], "justMyCode": false } ] }
justMyCode设为false可调试GDB内置Python代码,仅调试自有脚本时可设为truepathMappings保证本地脚本路径与GDB加载路径一致,避免断点失效
3. 启动GDB并加载脚本
打开终端启动GDB,加载你的Python脚本:
gdb (gdb) source your_gdb_script.py
此时GDB会暂停在wait_for_attach处,等待调试器连接。
4. 在VSCode中启动调试
在VSCode调试面板选择Attach to GDB Python,点击启动按钮。连接成功后,即可在脚本中设置断点,执行GDB自定义命令时会自动命中断点,后续操作与调试普通Python脚本一致。
方法二:直接附加到GDB进程
无需修改脚本的情况下,可通过进程附加调试:
- 启动GDB并加载你的Python脚本
- 在VSCode调试面板选择
Python: Attach,在进程列表中找到gdb进程并选中附加 - 提前在脚本中设置断点,执行GDB自定义命令即可触发断点
注意事项
- 确保GDB使用的Python环境已安装
ptvsd,可通过pip install ptvsd安装(若GDB绑定系统Python,需用对应环境的pip执行安装) - 调试过程中避免在GDB中执行会中断进程的操作,防止调试会话异常
内容的提问来源于stack exchange,提问作者stu
相关产品推荐
相关产品推荐

