摘要:調(diào)試方法提供了一個(gè)內(nèi)建調(diào)試器來幫助開發(fā)者調(diào)試應(yīng)用程序。這兩個(gè)參數(shù)只會(huì)啟動(dòng)監(jiān)聽模式,不會(huì)進(jìn)入命令行調(diào)試模式,而且前者會(huì)運(yùn)行完所有代碼,通??捎糜谑录{(diào)試,后者會(huì)在進(jìn)入時(shí)中斷,方便從頭開始調(diào)試。安裝編輯器使用配置調(diào)試的配置信息如下圖。
Nodejs調(diào)試方法 1. Node debug
Nodejs提供了一個(gè)內(nèi)建調(diào)試器來幫助開發(fā)者調(diào)試應(yīng)用程序。使用debug模式時(shí),Node.js 會(huì)啟動(dòng)Debugger模塊,然后通過監(jiān)聽默認(rèn) 5858 端口將命令行的輸入傳送到內(nèi)建調(diào)試模塊以達(dá)到調(diào)試的目的。
同時(shí)支持--debug 和 --debug-brk參數(shù)。這兩個(gè)參數(shù)只會(huì)啟動(dòng)Debugger監(jiān)聽模式,不會(huì)進(jìn)入命令行調(diào)試模式,而且前者會(huì)運(yùn)行完所有代碼,通??捎糜谑录{(diào)試,后者會(huì)在進(jìn)入時(shí)中斷,方便從頭開始調(diào)試。
運(yùn)行:node debug [需要調(diào)試的js]
調(diào)試命令說明:
repl 打開js上下文即時(shí)求值環(huán)境,可查看變量 run 執(zhí)行腳本,在第一行暫停 restart 重新執(zhí)行腳本 cont, c 繼續(xù)執(zhí)行,直到遇到下一個(gè)斷點(diǎn) next, n 單步執(zhí)行 step, s 單步執(zhí)行并進(jìn)入函數(shù) out, o 從函數(shù)中步出 setBreakpoint(), sb() 當(dāng)前行設(shè)置斷點(diǎn) setBreakpoint(‘f()’), sb(...) 在函數(shù)f的第一行設(shè)置斷點(diǎn) setBreakpoint(‘script.js’, 20), sb(...) 在 script.js 的第20行設(shè)置斷點(diǎn) clearBreakpoint, cb(...) 清除所有斷點(diǎn) backtrace, bt 顯示當(dāng)前的調(diào)用棧 list(5) 顯示當(dāng)前執(zhí)行到的前后5行代碼 watch(expr) 把表達(dá)式 expr 加入監(jiān)視列表 unwatch(expr) 把表達(dá)式 expr 從監(jiān)視列表移除 watchers 顯示監(jiān)視列表中所有的表達(dá)式和值 kill 終止當(dāng)前執(zhí)行的腳本 scripts 顯示當(dāng)前已加載的所有腳本 version 顯示v8版本2. Node inspector
node-inspector是基于Node.js的Debugger模塊進(jìn)行調(diào)試的,是通過websocket方式來轉(zhuǎn)向debug輸入輸出的。因此,我們?cè)谡{(diào)試前要先啟動(dòng)node-inspector來監(jiān)聽Nodejs的debug調(diào)試端口。
安裝: npm install –g node-inspector
運(yùn)行:node-inspector & 或 node-inspector --web-port=5100 //啟動(dòng)調(diào)試,默認(rèn)8080端口或者指定端口
node --debug-brk [需要調(diào)試的js] 或 node-debug [需要調(diào)試的js]
控制臺(tái)會(huì)返回debugger listening on port 5858, 現(xiàn)在打開瀏覽囂,訪問 http://localhost:8080/debug?p... ,這時(shí)候就會(huì)打開一個(gè)很像Chrome內(nèi)置調(diào)試工具的界面,并且代碼斷點(diǎn)在第一行,下面就可以使用這個(gè)來調(diào)試了。
缺點(diǎn):頁(yè)面不能刷新,每次調(diào)試需要重新運(yùn)行 “node-debug [需要調(diào)試的js]"
3. V8_inspector現(xiàn)如今,新版本的Chrome瀏覽器和新版本的Node.js支持通過一個(gè)新的調(diào)試協(xié)議能互相直接通訊了,就不再需要node-inspector了。
環(huán)境:
Node.js 6.3+
chrome 55+
需下載 Chrome 瀏覽器 Canary 版 (Canary 版是專為開發(fā)者和早期用戶設(shè)計(jì)的版本,可能會(huì)造成瀏覽器當(dāng)機(jī))
步驟:
下載Chrome瀏覽器Canary版,打開 chrome://flags/#enable-devtools-experiments (啟用開發(fā)者工具實(shí)驗(yàn)性功能)
重啟Chrome。打開開發(fā)者工具 -> 設(shè)置 -> Experiments,按SHIFT鍵6次,顯示隱藏選項(xiàng)后勾選Node debugging
在終端輸入指令: node –-inspect [需要調(diào)試的js]。用Canary版瀏覽器打開終端輸出的鏈接。
4. webstorm安裝webstorm,webstorm也是一個(gè)好軟件,支持多平臺(tái)。特別提醒ws是是一個(gè)商業(yè)收費(fèi)軟件,可以試用30天。
安裝: webstorm編輯器
使用: 配置debug調(diào)試的配置信息(如下圖)。再點(diǎn)擊debug
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/91844.html
摘要:第三步在打開在地址欄輸入并回車后就會(huì)看到以下頁(yè)面了點(diǎn)擊上面的鏈接跳轉(zhuǎn)到調(diào)試頁(yè)面你會(huì)看到一個(gè)調(diào)試當(dāng)前代碼的彈窗。更好的體驗(yàn)是,當(dāng)你的重啟后,這個(gè)調(diào)試窗口會(huì)重新連接。從上圖,你會(huì)看到一堆經(jīng)常用到的調(diào)試工具。 事實(shí)上chrome devtools在2016年5月就已經(jīng)支持Nodejs的調(diào)試了,具體可以觀看英文原版Google I/O上的視頻 第一步:下載和安裝最新版本的Nodejs(要求6....
前言 我總是調(diào)侃好多 nodejs 開發(fā)都不會(huì)多進(jìn)程調(diào)試,這其中就包括了我。直到有一天,我不得不使用它來解決一些問題,作為一個(gè)懶人,我喜歡用簡(jiǎn)單的辦法,所以這可能是最簡(jiǎn)單的 Nodejs 調(diào)試方法,話不多說進(jìn)入正題 單進(jìn)程調(diào)試 console.log() 單進(jìn)程的調(diào)試,如果場(chǎng)景不復(fù)雜、比較好預(yù)判,可以直接打印到控制臺(tái) // 添加參數(shù) --debug-brk 可以在第一行斷點(diǎn) // node --i...
摘要:原文地址這兩天在看也在入門中網(wǎng)上大部分教程都是前端配置開發(fā)調(diào)試這個(gè)也有很多相當(dāng)成熟的實(shí)踐教程這篇文章主要是的配置說起來也是相當(dāng)簡(jiǎn)單的不涉及任何的語法與概念同時(shí)也可以根據(jù)本文配置的開發(fā)環(huán)境主要是模塊部分的使用說起大家應(yīng)該都挺熟悉了是一個(gè) 原文地址 https://github.com/xiadd/blog/issues/8 這兩天在看ts,也在入門中, 網(wǎng)上大部分教程都是前端配置ts開發(fā)...
摘要:支持,和三種環(huán)境,并且可以安裝擴(kuò)展插件,因而可以滿足絕大多數(shù)人的要求,安裝配置非本文所要講述的內(nèi)容,請(qǐng)自行查找,本文著重討論如何用更好的調(diào)試代碼,希望能對(duì)大家有所幫助。 2018.5.12更新 最近在用vscode 1.23版本的時(shí)候發(fā)現(xiàn)outDir不可以使用了,建議這么改吧,直接program采用編譯后的文件,然后打開sourceMaps,同時(shí)在babel編譯的時(shí)候自己搞--watc...
摘要:示例代碼插入斷點(diǎn)方法在需要設(shè)置斷點(diǎn)的地方插入關(guān)鍵字,程序會(huì)在這里暫停運(yùn)行。只需要在命令模式輸入,按回車便可以進(jìn)入環(huán)境。 1 示例代碼 app.js var express = require(express); var app = express(); var req_times = 0; app.all(/*, function(req, res){ req_times...
閱讀 3623·2021-11-25 09:43
閱讀 2017·2019-08-30 13:56
閱讀 1286·2019-08-30 12:58
閱讀 3489·2019-08-29 13:52
閱讀 815·2019-08-26 12:17
閱讀 1512·2019-08-26 11:32
閱讀 1009·2019-08-23 13:50
閱讀 1356·2019-08-23 11:53