关于VScode的调试

调试代码要有这么几个工具:源代码、带调试符号的程序、MAP表,调试器。

在启动调试器之前,要首先编译带有符号表的程序,生成对应map。然后启动调试器。

不同的语言有不同的特性,比如解释型语言不需要编译成可执行程序。因此不同语言调试的具体方法不同。

vscode作为通用IDE,为了弥合不同语言之间的调试差异,采用了声明式配置。用户只需要告诉vscode使用什么调试器,调试哪个程序,源代码在哪里,就能对程序进行调试。所有这些信息都保存在 .vscode/launch.json 文件中。

最核心的参数有以下几个

参数 示例 说明
type node、debugpy、chrome等 指定调试器类型
request launch、attach lanuch新启动一个程序进程进行调试;attach是把vscode作为调试器客户端,连接到远端调试服务器(远程调试)

其他公共配置-(request: "launch)

参数 说明
name 配置名称(显示在调试下拉列表中)
program 入口文件路径(如 ${workspaceFolder}/src/main.ts
runtimeExecutable 指定运行时(如 npm, node)
runtimeArgs 传递给运行时的参数
args 传递给程序的参数
env 环境变量
cwd 工作目录
console 控制台类型。 internalConsole: VS Code 内置控制台; integratedTerminal: 集成终端; externalTerminal: 外部终端

在调试js程序时,如果制定了运行时是npm,则可以不指定program.

例如:

json 复制代码
{
  "runtimeExecutable": "npm",
  "runtimeArgs": ["run", "debug"],
  "skipFiles": ["<node_internals>/**"],
  "console": "integratedTerminal",
  "outFiles": ["${workspaceFolder}/dist/**/*.js"]
}

其他公共配置-(request: "attach)

参数 说明
port 要附加的调试端口(通常 9229)
address IP 地址(默认 "localhost")
localRoot 本地工作区根目录
remoteRoot 远程工作区根目录(用于远程调试)

其他公共配置-源代码映射:

参数 说明
outFiles 编译输出文件的 glob 模式(如 "${workspaceFolder}/dist/**/*.js")
sourceMaps 是否使用 source map(默认 true)
preLaunchTask 调试前执行的任务(如编译任务)

其他公共配置:

参数 说明
skipFiles 跳过调试的文件(如 ["<node_internals>/**"]
restart 是否在终止时重启
stopOnEntry 启动时是否在入口暂停。当为true时,一旦进入调试状态,程序会自动hang住,等待用户点击"继续"才会继续执行。相当于自动加了一个断点
相关推荐
m0_疾风3 小时前
VSCODE
ide·vscode·编辑器
小妖6665 小时前
怎么开机自动启动vscode项目
ide·vscode·编辑器
爱串门的小马驹10 小时前
VScode编译调试debug,gpu的cuda程序,Nsight
vscode·gpu·cuda
qq. 280403398410 小时前
vim 的基本使用
linux·编辑器·vim
爱吃巧克力的程序媛10 小时前
Vim 中设置插入模式下输入中文
linux·编辑器·vim
今天又在摸鱼11 小时前
vscode实用配置
ide·vscode·编辑器
深色風信子15 小时前
Eclipse 插件开发 5.2 编辑器 获取当前编辑器
java·eclipse·编辑器·eclipse 编辑器获取·eclipse 插件
hbwhmama17 小时前
WIN11使用vscode搭建c语言开发环境
ide·vscode·编辑器
砖头拍死你17 小时前
搭建基于VsCode的ESP32的开发环境教程
ide·vscode·编辑器
隐-梵17 小时前
Android studio进阶开发(七)---做一个完整的登录系统(前后端连接)
android·数据库·ide·spring·okhttp·android studio