node.js是基於Google V8的,而Google V8有一個Eclipse的調試外掛程式,這個外掛程式同樣也支援node.js。
1、安裝Eclipse debugger for V8
這個,用過Eclipse的應該都知道,不過還是簡單說下吧:
選擇“Install New Software”
點“Add”
Location為: http://chromedevtools.googlecode.com/svn/update/dev/
Name你喜歡,整一個方便你記憶的就好。
點擊確定後,在“Work with“選擇你剛才添加的網站:
然後選擇“Chromium JavaScript Remote Debugger”,然後一直下一步,安裝完後會提示重啟Eclipse,重啟Eclipse後就可以開始調試了。
2、怎樣調試Nodejs?
從外掛程式名稱中的“Remote”可以預想到這是一個遠端偵錯的工具,大概的流程就是node開一個tcp的調試連接埠,然後這個調試工具通過這個tcp連接埠來和node通訊實現調試。
要啟用node的調試連接埠,在執行node指令碼的時候需要添加 –-debug 參數:
- node --debug[=port] NodeApp.js
-
-
- or
-
- node --debug-brk[=port] NodeApp.js
其中port為開啟的調試連接埠,預設為5858.
--debug和--debug-brk的區別在於,--debug執行指令碼的時候會直接運行該指令碼,而--debug-brk執行指令碼的時候,並不會馬上執行,而是等待調試器的串連,然後按調試器的指令來執行。
我們寫個簡單的代碼來用於調試:
然後用 node –debug hello_world.js 來運行:
可以看到輸出一行:debugger listening on port 5858
5858為預設連接埠,你也可以用 --debug=5859 來指定不同的連接埠
好,現在node的偵錯模式已經運行起來了,我們去配置Eclipse來串連到node並進行調試。
首先我們要到debug config裡面去添加一個新的V8 VM的調試配置:
右鍵,選擇“new”來建立一個配置項:
因為我們剛才node起的調試連接埠為預設的5858,所以這裡我們的連接埠就是5858,名稱我們定為“Node-5858”。
然後點debug開始調試,或者你使用下面的方式開始調試:
偵錯模式大概會是這樣:
(註:這是調試視圖,點擊右上方的臭蟲按鈕。如果你的Eclipse上沒有這個按鈕,請點擊右上方臭蟲左邊的添加按鈕,找到debug然後添加就可以)
在偵錯模式串連成功後,你會在你的“Project Explorer”裡面看到多了一個“Node-5858”(剛才debug config裡面設定的名稱)的項目,裡面的檔案都是調試的檔案或者調試的檔案require進來的檔案。
開啟這些檔案,你就可以在裡面加斷點開始調試了。例如的第8行加了一個斷點,則每次在瀏覽器訪問的時候都會進入這個斷點。
其他的調試和你平時用Eclipse調試其他代碼是一樣的。
Eclipse的調試快速鍵是,F5單步進入,F6單步跳過。
最後說一下 --debug-brk 方式啟動的偵錯模式:
可以看到僅僅是輸出了一行“debugger listening on port 5858”而已,後面並沒有繼續輸出“Server running at …..”。
這是因為用 啟動的偵錯模式並不會馬上執行代碼,而是會等待調試器的串連(可以理解為在hello_world.js的第一行加了斷點),具體還是各位童鞋自己實踐吧。
參考: https://github.com/joyent/node/wiki/Using-Eclipse-as-Node-Applications-Debugger
原文:http://club.cnodejs.org/topic/4f16442ccae1f4aa27001105