如何使用VS Code调试Node.js C++ Addon 模块
VS Code作为目前最流行的开发工具之一,自从开始使用VS Code起就变得离不开这个开发神器了,最近由于项目的原因,接触了一些Node.js的C++插件,记录一下如何使用VS Code调试C++模块。
1. 设置VS Code的调试模块
设置VS Code的调试模块很容易,你有很多种方法可以实现,下面简单的列出常用的两种:
- 方法一: 按住
Cmd
+Shift
+P
打开命令栏,在命令栏中输入open launch.json
然后选择C++
。 - 方法二:找到左侧边栏的调试按钮,然后在打开的边栏中点击顶部的齿轮图标⚙,然后选择
C++
。
以上两种方式将会创建一个launch.json
的模板文件,长这样子:
{
"version": "0.2.0",
"configurations": [
{
"name": "(lldb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "enter program name, for example ${workspaceFolder}/a.out",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "lldb"
}
]
}
这个文件主要是用来定义你想用什么程序去开始你的调试工作,比如如果我们想要调试通过如下方式运行的代码node test/vtshaver.test.js
(用node运行test/vtshaver.test.js
文件)。我们只需要改变配置中的program
成node的绝对地址(你可以使用which node
找到当前Node版本的地址)。设置好node之后,就需要配置启动参数args
,这里我们启动的是test/vtshaver.test.js
文件,找到这个文件的绝对地址,然后配置上去即可。
另外,由于是C++的模块,我们需要在代码运行之前进行编译C++,所以我们可以通过preLaunchTask
这个字段来配置,将它配置成npm: build:dev
,这样没次我们调试任务启动之前,VS Code都会自动的执行相应的命令
"preLaunchTask": "npm: build:dev",
最终这个配置文件可能长这个样子:
{
"version": "0.2.0",
"configurations": [
{
"name": "(lldb) Launch",
"type": "cppdbg",
"request": "launch",
"preLaunchTask": "npm: build:dev",
"program": "/Users/mapbox-mofei/.nvm/versions/node/v8.11.3/bin/node",
"args": ["/Users/mapbox-mofei/dev/mapbox/vtshaver/test/vtshaver.test.js"],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "lldb"
}
]
}
现在打开相应的C++文件,然后点击左边行数边的空白处去添加一个断点(可以看到行数的左边会出现一个绿色的小圈圈)。然后回到调试窗口(点击左边导航栏的调试按钮),找到上方的绿色启动按钮,点击它!
如果你能正确的运行起来的话,那么恭喜你,你现在已经可以使用VS Code来调试C++代码了,程序会自动的停止在断点处,然后你也可以把鼠标放在任何相关的变量上去查看变量的内容。如果你想让程序继续进行,只需要点击顶部的导航按钮即可。