vscode 提供调试功能可以调试 node php go 等程序。
它需要先创建一个配置文件 launch.json
才能开始调试。
以 Node 为例:
自动创建的 launch.json
:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"skipFiles": [
"<node_internals>/**"
],
"program": "${file}"
}
]
}
program
表示启动调试后运行的文件路径。
skipFiles
表示调试时忽略的文件,默认 <node_internals/**>
表示 Node 内部模块。
所以要调试 node 源码就要将这个配置去掉,就像:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
// "skipFiles": [
// "<node_internals>/**"
// ],
"program": "${file}"
}
]
}
但实际运行起来,并没有生效,打在 Node API 的断点的下一步并不能进入源码。
这可能是 vscode 对未指定的配置项进行了默认处理,这里将 skipFiles
字段整个注释,暗示 vscode 采用默认值,所以还要保留它:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"skipFiles": [
// "<node_internals>/**"
],
"program": "${file}"
}
]
}
这样就可以了。
去 vscode 官网上找了下,并没有找到相应的说明…