国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

基于node.js之調試器詳解

2019-11-19 15:43:13
字體:
來源:轉載
供稿:網友

1.在命令行窗口中,可以使用"node debug" 命令來啟用調試器,代碼如下:

node debug<需要被執行的腳本文件名>接下來根據一個實例進行學習調試過程:

編寫app.js文件進行調試:

console.log('hello,word')function foo(){ console.log('hello,foo') return 100;}var bar = 'This is a pen';var http = require('http')var i = foo();console.log(i)

1 在命令行窗口使用"node debug"命令,結果如下所示:

[root@kuber2 webproject]# node debug app.js< Debugger listening on [::]:5858connecting to 127.0.0.1:5858 ... okbreak in app.js:1> 1 console.log('hello,word') 2 function foo(){ 3 console.log('hello,foo')debug> 

在Node.js中提供了一個可以通過簡單TCP協議來訪問的調試器,進入調試后,首先連接調試器,如上圖所示出現Debugger并后面跟有ok,說明調試器已經成功使用。"break in app.js:1" 表示腳本程序暫停的位置

2 繼續執行可輸入"cont"或"c",繼續執行剩余的代碼,結果如下所示:

[root@kuber2 webproject]# node debug app.js< Debugger listening on [::]:5858connecting to 127.0.0.1:5858 ... okbreak in app.js:1> 1 console.log('hello,word') 2 function foo(){ 3 console.log('hello,foo')debug> c< hello,word< hello,foo< 100

3 如果不需要執行剩余的所有腳本代碼,輸入"next"或"n"將程序執行到下一句可執行代碼前,如下所示:

[root@kuber2 webproject]# node debug app.js< Debugger listening on [::]:5858connecting to 127.0.0.1:5858 ... okbreak in app.js:1> 1 console.log('hello,word') 2 function foo(){ 3 console.log('hello,foo')debug> n< hello,wordbreak in app.js:6 4 return 100; 5 }> 6 var bar = 'This is a pen'; 7 var http = require('http') 8 var i = foo();debug> 

4 如果想進入函數進行調試,可以在函數被調用出輸入命令"step"或"s",進入函數體,如圖所示:

break in app.js:8 6 var bar = 'This is a pen'; 7 var http = require('http')> 8 var i = foo(); 9 console.log(i) 10 debug> sbreak in app.js:3 1 console.log('hello,word') 2 function foo(){> 3 console.log('hello,foo') 4 return 100; 5 }debug>

5 在函數體中可以用"n",逐步進行調試,還可輸入"out"或"o" 立即執行完函數內所有代碼,程序將暫停到被調用函數代碼后的一句代碼前,如圖所示:

break in app.js:3 1 console.log('hello,word') 2 function foo(){> 3 console.log('hello,foo') 4 return 100; 5 }debug> n< hello,foobreak in app.js:4 2 function foo(){ 3 console.log('hello,foo')> 4 return 100; 5 } 6 var bar = 'This is a pen';debug> obreak in app.js:9 7 var http = require('http') 8 var i = foo();> 9 console.log(i) 10  11 });debug>

6 利用watch可以觀察變量或一些表達式的值,利用unwatch可以取消觀看,具體應用如下代碼所示:

break in app.js:1> 1 console.log('hello,word') 2 function foo(){ 3 console.log('hello,foo')debug> watch("i")debug> watch("i==100")debug> n< hello,wordbreak in app.js:6Watchers: 0: i = undefined 1: i==100 = false 4 return 100; 5 }> 6 var bar = 'This is a pen'; 7 var http = require('http') 8 var i = foo();debug> nbreak in app.js:7Watchers: 0: i = undefined 1: i==100 = false 5 } 6 var bar = 'This is a pen';> 7 var http = require('http') 8 var i = foo(); 9 console.log(i)debug> nbreak in app.js:8Watchers: 0: i = undefined 1: i==100 = false 6 var bar = 'This is a pen'; 7 var http = require('http')> 8 var i = foo(); 9 console.log(i) 10 debug> n< hello,foobreak in app.js:9Watchers: 0: i = 100 1: i==100 = true 7 var http = require('http') 8 var i = foo();> 9 console.log(i) 10  11 });debug> unwatch("i")debug> unwatch("i==100")debug> n< 100break in app.js:11 9 console.log(i) 10 >11 });debug>

7 可以利用setBreakpoint(filename,line)或cb(filename,line),設置斷點,第一個參數為設置斷點的文件名,不填默認為i正在運行的文件,line為需要加斷點的行號;可以利用clearBreakPoint(filename,line)或cb(filename,line)取消斷點

8 使用list(n)可以顯示所調試語句的前幾后與后幾行代碼

9 使用repl可以特推出debug模式

10 使用restart可以重新開始文本調試

11 使用kill終止腳本文件調試

12 利用kill終止文本調試后可利用run重新開始

13 利用backtrace或bt可以返回運行代碼的所處位置

14 利用script可以查看所有被加載的模塊名稱

以上這篇基于node.js之調試器詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 炎陵县| 新宁县| 西畴县| 池州市| 张家港市| 玉山县| 赫章县| 德江县| 天柱县| 开阳县| 休宁县| 白水县| 临桂县| 如皋市| 西盟| 自贡市| 达日县| 富民县| 大安市| 布拖县| 黎川县| 思南县| 万州区| 普洱| 恩施市| 获嘉县| 南靖县| 陈巴尔虎旗| 塔河县| 科尔| 宣威市| 山西省| 乌鲁木齐市| 德令哈市| 黄冈市| 玉门市| 新巴尔虎左旗| 高清| 津市市| 万安县| 长兴县|