How to Debug Node.js C++ Addon Module with VS Code

Sorry, this article is not written in English and has not been translated into English yet .You can view this article in English with Google Translate, or please come back later.

VS Code作为目前最流行的开发工具之一,自从开始使用VS Code起就变得离不开这个开发神器了,最近由于项目的原因,接触了一些Node.js的C++插件,记录一下如何使用VS Code调试C++模块。

1. 设置VS Code的调试模块

设置VS Code的调试模块很容易,你有很多种方法可以实现,下面简单的列出常用的两种:

  • 方法一: 按住Cmd+Shift+P打开命令栏,在命令栏中输入open launch.json然后选择C++
  • 方法二:找到左侧边栏的调试按钮,然后在打开的边栏中点击顶部的齿轮图标⚙,然后选择C++

howtodebug

以上两种方式将会创建一个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++文件,然后点击左边行数边的空白处去添加一个断点(可以看到行数的左边会出现一个绿色的小圈圈)。然后回到调试窗口(点击左边导航栏的调试按钮),找到上方的绿色启动按钮,点击它!

howtodebug

如果你能正确的运行起来的话,那么恭喜你,你现在已经可以使用VS Code来调试C++代码了,程序会自动的停止在断点处,然后你也可以把鼠标放在任何相关的变量上去查看变量的内容。如果你想让程序继续进行,只需要点击顶部的导航按钮即可。

howtodebug

54300
  • logo
    • HI, THERE!I AM MOFEI

      (C) 2010-2024 Code & Design by Mofei

      Powered by Dufing (2010-2020) & Express

      IPC证:沪ICP备2022019571号-1