Skip to content

vsc - debugger调试

.vscode/launch.json文件

launch.json 配置文件中,常见的字段和其含义如下:

  • "version" :指定 launch.json 文件的格式版本。通常使用 "0.2.0"

  • "configurations" :一个包含多个调试配置的数组。每个配置是一个 JSON 对象,包含以下字段:

    • "name" :调试配置的名称,用于在 VS Code 菜单中显示。
    • "type" :指定调试器的类型,例如 "node" 表示 Node.js 调试器,"python" 表示 Python 调试器,"java" 表示 Java 调试器等。
    • "request" :指定调试的请求类型,可以是 "launch"(启动一个新的进程)或 "attach"(附加到已有的进程)。
    • "program" :指定要调试的程序或脚本的路径。
    • module:指定运行模块(替代 program),如 "pytest""unittest"
    • "args" :传递给程序的命令行参数,以数组形式提供。
  • "cwd" :指定工作目录,即调试会话开始时的当前工作目录。

  • 其他可选字段:不同的调试器可能支持不同的字段,用于配置更详细的调试行为。

  • "type" :指定调试器的类型,例如 "node" 表示 Node.js 调试器,"python" 表示 Python 调试器,"java" 表示 Java 调试器等。

  • "request" :指定调试的请求类型,可以是 "launch"(启动一个新的进程)或 "attach"(附加到已有的进程)。

  • "name" :为配置提供一个友好的名称,方便识别不同的调试配置。

  • "program" :用于指定程序的入口文件路径,可以是绝对路径或相对于工作目录的路径。

  • "args" :传递给程序的命令行参数,以数组形式提供。

  • "cwd" :指定程序的工作目录,可以是绝对路径或相对于工作目录的路径。

  • "env" :设置程序运行时的环境变量,以对象形式提供。

  • "stopOnEntry" :设置为 true 时,在启动后会在入口处停止,等待调试器连接。

  • "preLaunchTask" :指定在启动调试前运行的任务,通常是一个编译任务。

  • "postDebugTask" :指定在调试结束后运行的任务,比如清理任务。

  • "outFiles" :设置输出文件的路径,用于映射源代码和编译后的文件。

  • "sourceMaps" :控制是否启用源代码映射,可以是 "inline"、"both" 或 "false"。

  • "sourceMapPathOverrides" :用于根据源代码映射调整文件路径。

  • "externalConsole" :设置为 true 时,将在外部控制台中运行程序。

  • "internalConsoleOptions" :控制内部控制台的显示方式,可以是 "neverOpen"、"openOnSessionStart" 或 - "openOnFirstSessionStart"。

  • "showAsyncStacks" :设置为 true 时,在堆栈跟踪中显示异步调用的信息。

  • "stopOnError" :设置为 true 时,当发生错误时暂停调试。

  • "smartStep" :设置为 true 时,跳过无需调试的代码。

  • "skipFiles" :指定不需要调试的文件或文件夹。

  • "justMyCode" :设置为 true 时,只调试自己的代码。

常用变量(宏替换) VS Code 支持一些预定义变量,用于动态构建路径和内容:

变量名含义
${workspaceFolder}当前工作区根目录
${workspaceFolder:name}多根项目中指定名称的根目录
${file}当前打开的文件路径
${fileDir}当前文件所在目录
${fileBasenameNoExtension}当前文件名(不含扩展名)
${env:VAR_NAME}获取系统环境变量,例如 ${env:HOME}

常见配置实例

Python 调试

json
{
    "name": "Python: Current File",
    "type": "python",
    "request": "launch",
    "program": "${file}",
    "console": "integratedTerminal",
    "env":
    {
        "PYTHONPATH": "",
    },
    "args": []
},

FastAPI

json
{
    "name": "Python Debugger: FastAPI",
    "type": "debugpy",
    "request": "launch",
    "module": "uvicorn",
    "args": [
        "main:app",
        "--reload"
    ],
    "jinja": true,
    "python": "${workspaceFolder}/myenv/bin/python"
}

上次更新时间:

最近更新