当前位置:首页 > 通信资讯 > 正文

vscode node调试(nodejs vscode 调试)

vscode node调试(nodejs vscode 调试)

前言:调试代码不管对于开发还是学习源码都是非常重要的技能,本文简单介绍vscode调试Node.js相关代码的调试技巧。

一、调试业务JS

调试业务JS可能是普遍的场景,随着Node.js和调试工具的成熟,调试也变得越来越简单。下面是vscode的lauch.json配置。

  1. {
  2. "version":"0.2.0",
  3. "configurations":[
  4. {
  5. "type":"node",
  6. "request":"attach",
  7. "name":"AttactProgram",
  8. "port":9229
  9. }
  10. ]
  11. }

1.在JS里设置断点,执行node --inspect index.js 启动进程,会输出调试地址。

vscode node调试(nodejs vscode 调试)

2.点击虫子,然后点击绿色的三角形。

vscode node调试(nodejs vscode 调试)

3.vscode会连接Node.js的WebSocket服务。

4.开始调试(或者使用Chrome Dev Tools调试)。

二 调试Addon的C++

写Addon的场景可能不多,但是当你需要的时候,你就会需要调试它。下面的配置只可以调试C++代码。

  1. {
  2. "version":"0.2.0",
  3. "configurations":[
  4. {
  5. "name":"DebugnodeC++addon",
  6. "type":"lldb",
  7. "request":"launch",
  8. "program":"node",
  9. "args":["${workspaceFolder}/node-addon-examples/1_hello_world/napi/hello.js"],
  10. "cwd":"${workspaceFolder}/node-addon-examples/1_hello_world/napi"
  11. },
  12. ]
  13. }

1.在C++代码设置断点。

vscode node调试(nodejs vscode 调试)

2.执行node-gyp configure && node-gyp build --debug编译debug版本的Addon。

3. JS里加载debug版本的Addon。

vscode node调试(nodejs vscode 调试)

4.点击小虫子开始调试。

vscode node调试(nodejs vscode 调试)

三、调试Addon的C++和JS

Addon通常需要通过JS暴露出来使用,如果我们需要调试C++和JS,那么就可以使用以下配置。

  1. {
  2. "version":"0.2.0",
  3. "configurations":[
  4. {
  5. "name":"DebugnodeC++addon",
  6. "type":"node",
  7. "request":"launch",
  8. "program":"${workspaceFolder}/node-addon-examples/1_hello_world/napi/hello.js",
  9. "cwd":"${workspaceFolder}/node-addon-examples/1_hello_world/napi"
  10. },
  11. {
  12. "name":"AttachnodeC/C++Addon",
  13. "type":"lldb",
  14. "request":"attach",
  15. "pid":"${command:pickMyProcess}"
  16. }
  17. ]
  18. }

和2的过程类似,点三角形开始调试,再选择Attach node C/C++ Addon,然后再次点击三角形。

vscode node调试(nodejs vscode 调试)

选择attach到hello.js中。

vscode node调试(nodejs vscode 调试)

开始调试。

四、调试Node.js源码C++

我们不仅用Node.js,我们可能还会学习Node.js源码,学习源码的时候就少不了调试。可以通过下面的方式调试Node.js的C++源码。

  1. ./configure--debug&&make

使用以下配置:

  1. {
  2. "version":"0.2.0",
  3. "configurations":[
  4. {
  5. "name":"(lldb)启动",
  6. "type":"cppdbg",
  7. "request":"launch",
  8. "program":"${workspaceFolder}/out/Debug/node",
  9. "args":[],
  10. "stopAtEntry":false,
  11. "cwd":"${fileDirname}",
  12. "environment":[],
  13. "externalConsole":false,
  14. "MIMode":"lldb"
  15. }
  16. ]
  17. }

在node_main.cc的main函数或任何C++代码里打断点,点击小虫子开始调试。

五、调试Node.js源码C++和JS代码

Node.js的源码不仅仅有C++,还有JS,如果我们想同时调试,那么就使用以下配置。

  1. {
  2. "version":"0.2.0",
  3. "configurations":[
  4. {
  5. "name":"(lldb)启动",
  6. "type":"cppdbg",
  7. "request":"launch",
  8. "program":"${workspaceFolder}/out/Debug/node",
  9. "args":["--inspect-brk","${workspaceFolder}/out/Debug/index.js"],
  10. "stopAtEntry":false,
  11. "cwd":"${fileDirname}",
  12. "environment":[],
  13. "externalConsole":false,
  14. "MIMode":"lldb"
  15. }
  16. ]
  17. }

1.点击调试。

vscode node调试(nodejs vscode 调试)

2.在vscode调试C++,执行完Node.js启动的流程后会输出调试JS的地址。

vscode node调试(nodejs vscode 调试)

3.在浏览器连接WebSocket服务调试JS。

vscode node调试(nodejs vscode 调试)

vscode node调试(nodejs vscode 调试)

原文链接:https://mp.weixin.qq.com/s/kC_QpiJrE5ZSw16rv8jLzA

如果您对该产品感兴趣,请填写办理(客服微信:xiaoxiongyidong)

为您推荐:

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。