自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一篇帶給你Vscode調(diào)試Node.js指南

開(kāi)發(fā) 前端
調(diào)試代碼不管對(duì)于開(kāi)發(fā)還是學(xué)習(xí)源碼都是非常重要的技能,本文簡(jiǎn)單介紹vscode調(diào)試Node.js相關(guān)代碼的調(diào)試技巧。

[[419271]]

前言:調(diào)試代碼不管對(duì)于開(kāi)發(fā)還是學(xué)習(xí)源碼都是非常重要的技能,本文簡(jiǎn)單介紹vscode調(diào)試Node.js相關(guān)代碼的調(diào)試技巧。

一、調(diào)試業(yè)務(wù)JS

調(diào)試業(yè)務(wù)JS可能是普遍的場(chǎng)景,隨著Node.js和調(diào)試工具的成熟,調(diào)試也變得越來(lái)越簡(jiǎn)單。下面是vscode的lauch.json配置。

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

1.在JS里設(shè)置斷點(diǎn),執(zhí)行node --inspect index.js 啟動(dòng)進(jìn)程,會(huì)輸出調(diào)試地址。

2.點(diǎn)擊蟲(chóng)子,然后點(diǎn)擊綠色的三角形。

3.vscode會(huì)連接Node.js的WebSocket服務(wù)。

4.開(kāi)始調(diào)試(或者使用Chrome Dev Tools調(diào)試)。

二 調(diào)試Addon的C++

寫Addon的場(chǎng)景可能不多,但是當(dāng)你需要的時(shí)候,你就會(huì)需要調(diào)試它。下面的配置只可以調(diào)試C++代碼。

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

1.在C++代碼設(shè)置斷點(diǎn)。

2.執(zhí)行node-gyp configure && node-gyp build --debug編譯debug版本的Addon。

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

4.點(diǎn)擊小蟲(chóng)子開(kāi)始調(diào)試。

三、調(diào)試Addon的C++和JS

Addon通常需要通過(guò)JS暴露出來(lái)使用,如果我們需要調(diào)試C++和JS,那么就可以使用以下配置。

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

和2的過(guò)程類似,點(diǎn)三角形開(kāi)始調(diào)試,再選擇Attach node C/C++ Addon,然后再次點(diǎn)擊三角形。

選擇attach到hello.js中。

開(kāi)始調(diào)試。

四、調(diào)試Node.js源碼C++

我們不僅用Node.js,我們可能還會(huì)學(xué)習(xí)Node.js源碼,學(xué)習(xí)源碼的時(shí)候就少不了調(diào)試??梢酝ㄟ^(guò)下面的方式調(diào)試Node.js的C++源碼。

  1. ./configure --debug && make 

使用以下配置:

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

在node_main.cc的main函數(shù)或任何C++代碼里打斷點(diǎn),點(diǎn)擊小蟲(chóng)子開(kāi)始調(diào)試。

五、調(diào)試Node.js源碼C++和JS代碼

Node.js的源碼不僅僅有C++,還有JS,如果我們想同時(shí)調(diào)試,那么就使用以下配置。

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

1.點(diǎn)擊調(diào)試。

2.在vscode調(diào)試C++,執(zhí)行完Node.js啟動(dòng)的流程后會(huì)輸出調(diào)試JS的地址。

3.在瀏覽器連接WebSocket服務(wù)調(diào)試JS。

 

責(zé)任編輯:姜華 來(lái)源: 編程雜技
相關(guān)推薦

2022-03-20 06:40:31

Node.jsperf_hooks性能數(shù)據(jù)

2021-07-21 09:48:20

etcd-wal模塊解析數(shù)據(jù)庫(kù)

2022-03-24 12:28:03

React 17React 18React

2021-02-24 08:32:45

Web Compone前端Web 應(yīng)用

2021-07-12 06:11:14

SkyWalking 儀表板UI篇

2021-11-24 08:51:32

Node.js監(jiān)聽(tīng)函數(shù)

2021-08-18 10:28:09

MySQL SQL 語(yǔ)句數(shù)據(jù)庫(kù)

2022-03-03 22:00:19

Hooks函數(shù)組件React

2021-06-21 14:36:46

Vite 前端工程化工具

2021-01-28 08:55:48

Elasticsear數(shù)據(jù)庫(kù)數(shù)據(jù)存儲(chǔ)

2021-04-01 10:51:55

MySQL鎖機(jī)制數(shù)據(jù)庫(kù)

2021-04-14 14:16:58

HttpHttp協(xié)議網(wǎng)絡(luò)協(xié)議

2022-04-29 14:38:49

class文件結(jié)構(gòu)分析

2023-03-29 07:45:58

VS編輯區(qū)編程工具

2021-03-12 09:21:31

MySQL數(shù)據(jù)庫(kù)邏輯架構(gòu)

2024-06-13 08:34:48

2022-03-22 09:09:17

HookReact前端

2022-02-17 08:53:38

ElasticSea集群部署

2021-04-08 11:00:56

CountDownLaJava進(jìn)階開(kāi)發(fā)

2021-04-14 07:55:45

Swift 協(xié)議Protocol
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)