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

VS Code中Python调用C++库时,如何快速确定VS2019需附加的Python进程PID?

如何快速确定调试Python调用C++库时需附加的Python进程PID

问题背景

我在VS Code(版本1.70.3)中搭建了一个调用C库的Python项目,需要调试这个C库,常规调试步骤如下:

  • 在Python项目的pytest测试中设置断点
  • 通过VS Code的Test Explorer调试测试,等待执行暂停在断点处
  • 在Visual Studio Professional 2019的C++源码中设置断点
  • 在Visual Studio中点击「调试」->「附加到进程」
  • 保持「连接类型」为「默认」、「连接目标」为本地机器名称
  • 在「附加到:」选项中选择「Native code」
  • 搜索“python”并选择要附加的python.exe进程

问题在于,最后一步会显示多个由VS Code启动的Python进程(通常为3个),仅一个能触发C++断点,但只能通过试错寻找对应PID,VS Code和Visual Studio均未提供相关进程详情。目前临时解决方法是通过VS Code命令面板打开Process Explorer,查看带有--adapter-access-token参数的进程来猜测PID,想知道是否有更简便的方法确定需附加的进程PID。

简便解决方案

方法1:直接在VS Code调试控制台获取PID

当Python测试暂停在断点时,打开VS Code的「调试控制台」,输入并执行以下代码:

import os
print(os.getpid())

控制台会直接输出当前正在调试的Python进程PID,拿着这个PID在Visual Studio的「附加到进程」窗口中精准定位即可。

方法2:从VS Code调试会话标题读取PID

启动调试会话后,在VS Code的「运行和调试」侧边栏(快捷键Ctrl+Shift+D)顶部,调试目标的下拉菜单会显示当前进程的标识,格式通常为Python: pytest - [PID],直接提取括号内的数字就是目标PID。

方法3:给目标进程添加自定义命令行标记

修改VS Code的Python测试调试配置文件(.vscode/launch.json),在args字段中添加一个自定义参数,示例如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: pytest",
            "type": "python",
            "request": "launch",
            "module": "pytest",
            "args": ["--debug-cpp-target"],
            "justMyCode": false
        }
    ]
}

之后在Visual Studio的「附加到进程」窗口中,右键点击Python进程选择「属性」,查看命令行参数,带有--debug-cpp-target标记的就是需要附加的目标进程。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 13:11:14