VSCode调试Python多线程程序时能否仅暂停单个线程?
VSCode Python多线程调试断点挂起策略设置方法
可以实现,VSCode的Python调试工具链原生支持和PyCharm一致的断点挂起策略自定义,可按需选择单断点触发时挂起全部线程或仅挂起触发断点的单个线程。
单断点单独配置方法(推荐)
该方式可以给不同断点设置不同的挂起规则,灵活性最高:
- 进入VSCode调试视图,在左侧「断点」列表找到目标断点,右键选择「编辑断点」;也可以直接悬停在代码行号旁的断点红点上,点击弹出的铅笔图标进入编辑界面
- 在弹出的配置编辑框中,将默认的
"suspend": "all"修改为"suspend": "thread" - 保存配置后即可生效,后续该断点触发时仅会挂起当前触发断点的线程,其余线程会保持正常运行状态
全局默认配置方法
如果你需要所有新增断点默认都仅挂起单个线程,可以修改.vscode/launch.json中的对应Python调试配置项:
{ "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", // 添加下面这行配置即可全局修改默认挂起策略 "suspendAllThreadsOnBreakpoint": false }
注意事项
切换到单线程挂起模式后,调试控制台的代码执行、变量查看默认都作用于当前被挂起的线程,你可以在调试视图的「线程」下拉列表中手动切换到其他线程查看上下文
如果需要恢复挂起全部线程的行为,把对应断点的suspend值改回all,或是删掉上述全局配置项即可
内容的提问来源于stack exchange,提问作者Xzmong
相关产品推荐
相关产品推荐

