使用chrome瀏覽器調試nodejs

Chrome瀏覽器調試nodejs(ChromeDevTools 55+支持)
1、運行腳本

1)、web服務應用:
node –inspect app.js 或者 node –inspect-brk app.js
2)、非web服務應用:
node --inspect-brk=9229 app.js
PS:-brk指定第一行設置斷點,一開始就是暫停狀態, =9229指定調試端口爲 9229,這是調試工具默認的通信端口

這是調試命令的一些參數(來自官網的):

Command-line options
The following table lists the impact of various runtime flags on debugging:Flag Meaning
--inspect
Enable inspector agent
Listen on default address and port (127.0.0.1:9229)
--inspect=[host:port]
Enable inspector agent
Bind to address or hostname host (default: 127.0.0.1)
Listen on port port (default: 9229)
--inspect-brk
Enable inspector agent
Listen on default address and port (127.0.0.1:9229)
Break before user code starts
--inspect-brk=[host:port]
Enable inspector agent
Bind to address or hostname host (default: 127.0.0.1)
Listen on port port (default: 9229)
Break before user code starts
node inspectscript.js
Spawn child process to run user's script under --inspect flag; and use main process to run CLI debugger.
node inspect --port=xxxx script.js
Spawn child process to run user's script under --inspect flag; and use main process to run CLI debugger.
Listen on port port (default: 9229)
--inspect-brk參數後面也能指定端口,未指定就使用默認的9229端口。

2、chrome瀏覽器裏打開:chrome://inspect/#devices,會顯示如下頁面(Target要等一會才能出現)。

3、點擊上圖紅框中的inspect按鈕,即可進入程序調試界

調試工具主要有四個面板:Console:控制檯、Sources:源碼、Memory:內存、Profiler:性能。
主要講Sources面板,調試時面板從左到右可以看到CallStack、Breakpoints、Scope、Watch等摺疊項。Scope雙擊Local的變量值可進入編輯狀態。

4、除了chrome://inspect/#devices之外,輸入 http://127.0.0.1:9292 然後打開開發者工具,點擊node圖標,也可以進入調試程序。

5、忘記寫 –inspect 怎麼辦?(Linux系統)

打開調試工具的前提是,啓動 Node 腳本時就加上--inspect參數。如果忘了這個參數,還能不能調試呢?
回答是可以的。首先,正常啓動腳本。
1)、正常啓動腳本:node app.js
2)、在另一個命令行窗口,查找上面腳本的進程號。

           $ ps ax | grep app.js
           30464 pts/11   Sl+    0:00 node app.js
           30541 pts/12   S+     0:00 grep app.js

3)、上面命令中,app.js的進程號是30464。接着運行下面命令:

   node -e'process._debugProcess(30464)'

4)、上面命令會建立進程 30464 與調試工具的連接,然後就可以打開調試工具了。
5)、還有一種方法,就是向腳本進程發送 SIGUSR1 信號,也可以建立調試連接。(windows上不可用)

   $ kill -SIGUSR1 30464

6、怎麼啓用遠程調試方案

如果需要遠程調試生產代碼,建議不要讓調試器監聽公共IP地址,建議使用ssh隧道來調試。怎麼啓用遠程調試方案:
1)、遠程機器上啓動進程:node –inspect app.js
2)、在要啓動調試客戶端連接的本地計算機上,可以設置ssh隧道:

ssh -L 9221:localhost:9229 [email protected]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章