Visual Studio Code - Python 调试 - 执行时步入外部函数的代码
Posted
技术标签:
【中文标题】Visual Studio Code - Python 调试 - 执行时步入外部函数的代码【英文标题】:Visual Studio Code - Python debugging - Step into the code of external functions when executing 【发布时间】:2019-05-04 19:33:18 【问题描述】:在 Python 项目中,如何告诉内置的 VSCode 调试器在执行时单步执行来自其他库的函数代码?
我知道标准库中实现的功能可以通过添加一个
"debugOptions": ["DebugStdLib"]
到您在 launch.json 中指定的配置 here,但是似乎无法强制调试器进入非标准模块的代码,例如那些您已经编写了自己并导入到当前文件中。
【问题讨论】:
【参考方案1】:调试器配置
"debugOptions": ["DebugStdLib"]
在 launch.json 中添加实际上 将进入用户定义和 pip 安装的模块,这与主要问题中所写的相反。
【讨论】:
我不知道为什么一开始它没有工作几次。"debugOptions"
已作为选项从配置文件中删除。而是使用"debugStdLib": true
正如另一个答案所暗示的,新选项现在是justMyCode【参考方案2】:
为了改进 John Smith 接受的答案,值得一提的是,现在该选项已再次重命名。新选项是
"justMyCode": false
并根据文档
当省略或设置为 True(默认值)时,将调试限制为 仅限用户编写的代码。设置为 False 也启用调试 标准库函数。
【讨论】:
对我来说 '"justMyCode": false' 用于放置断点并在 celery 的源代码中移动。 对于单元测试,您可能还需要"request": "test",
。 doc
为什么-o-为什么这不能成为默认值... :-(【参考方案3】:
这是通过自定义调试器来完成的。
如果您还没有,您需要初始化调试器自定义。您可以通过打开侧栏中的调试器部分并选择 create a launch.json file
来完成此操作。
完成此操作后,将在您工作区的 .vscode
文件夹中创建一个 launch.json
文件。
编辑此文件。它看起来像这样:
...,
"configurations": [
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "$file",
"console": "integratedTerminal"
]
将"justMyCode": false
添加到"Python: Current File"
配置中,如下所示:
...,
"configurations": [
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "$file",
"console": "integratedTerminal",
"justMyCode": false
]
从 Visual Studio Code 版本 1.59.0 开始有效。
参考: https://code.visualstudio.com/docs/python/debugging
【讨论】:
以上是关于Visual Studio Code - Python 调试 - 执行时步入外部函数的代码的主要内容,如果未能解决你的问题,请参考以下文章