博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
node.js之调试器
阅读量:5821 次
发布时间:2019-06-18

本文共 3379 字,大约阅读时间需要 11 分钟。

node.js之调试器

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可以查看所有被加载的模块名称

转载于:https://www.cnblogs.com/yuanchenghao/p/7407164.html

你可能感兴趣的文章
一本书的摘录
查看>>
重排序(转载)
查看>>
python+selenium之字符串切割操作
查看>>
串结构练习——字符串匹配
查看>>
linux下输入密码不回显
查看>>
《构建之法》读书笔记
查看>>
拿下阿里、头条、滴滴的offer后谈谈面试经验---动身前看一看
查看>>
android开发(49) android 使用 CollapsingToolbarLayout ,可折叠的顶部导航栏
查看>>
【ERP】如何在多行数据块中实现仅能勾选唯一的主联系人
查看>>
初试装饰模式-(公司人员)
查看>>
Spring 环境搭建
查看>>
点分治
查看>>
浮动清除、before&after
查看>>
c# dictionary,list排序
查看>>
spring-framework-中文文档二:Bean概述
查看>>
,计算 ,
查看>>
接口_GET请求_基于python
查看>>
常用的css的技巧
查看>>
规范测试流程
查看>>
Practices on Umbraco DataType Development
查看>>