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 调试 - 执行时步入外部函数的代码的主要内容,如果未能解决你的问题,请参考以下文章

visual studio code 怎么用

visual studio code报错误怎么解决

visual studio code怎么新建vue工程

visual studio 和visual studio code 的区别

visual studio code怎么运行代码

visual studio 和visual studio code 的区别