在 Python 项目中,如何告诉内置的 VSCode 调试器在执行时单步执行来自其他库的函数代码?
我知道通过添加一个
"debugOptions": ["DebugStdLib"]
然而,似乎不可能强制调试器进入非标准模块的代码,例如您自己编写并导入到当前文件中的那些模块。
调试器配置
实际上是在 发射 Json中加入了 将进入用户定义和 pip 安装的模块,与主要问题中所写的相反。
为了改进约翰 · 史密斯所接受的答案,值得一提的是现在这个选项已经被重新命名了。新的选择是
"justMyCode": false
根据文件
如果省略或设置为 True (默认值) ,则将调试限制为 仅用户编写的代码。设置为 False 也可以调试 标准库函数。
这是通过自定义调试器来完成的。
如果你还没有,你需要初始化调试器定制。可以通过在侧栏中打开调试器部分并选择 create a launch.json file来实现这一点。
create a launch.json file
完成此操作后,将在工作区中的 .vscode文件夹中创建一个 launch.json文件。
.vscode
launch.json
编辑这个文件,它看起来像这样:
{ ..., "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal" } ] }
将 "justMyCode": false添加到 "Python: Current File"配置中,如下所示:
"Python: Current File"
{ ..., "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", "justMyCode": false } ] }
对于 VisualStudio 代码版本1.59.0,为 True。
参考文献: Https://code.visualstudio.com/docs/python/debugging
大多数时候,我调试的是单元测试,而不是正在运行的应用程序。
如果你的情况也是这样,你可以使用:
然后使用插件页面中提到的以下 发射 Json:
{ "version": "0.2.0", "configurations": [ { "name": "Debug test", "type": "python", "request": "attach", "console": "externalTerminal", "justMyCode": false, "stopOnEntry": true, "envFile": "${workspaceFolder}/.env.test", "purpose": ["debug-test"] } ] }
对于那些使用标准 VSCode 调试器的用户来说,可能需要对如何在 VS Code 中配置此调试器做一些说明
打开你的 .vscode/launch.json
.vscode/launch.json
将配置 {}添加到配置列表:
{}
"configurations": []
这个会被内置的 VSCode 调试器识别出来:
{ "name": "Python: Debug Tests", "type": "python", "request": "launch", "program": "${file}", "purpose": ["debug-test"], "console": "integratedTerminal", "justMyCode": false }
要点:
purpose
"justMyCode":
参考文献: 正式 VSCode 文档