全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

基于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 [::]:5858
connecting to 127.0.0.1:5858 ... ok
break 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 [::]:5858
connecting to 127.0.0.1:5858 ... ok
break 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 [::]:5858
connecting to 127.0.0.1:5858 ... ok
break in app.js:1
> 1 console.log('hello,word')
 2 function foo(){
 3 console.log('hello,foo')
debug> n
< hello,word
break 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> s
break 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,foo
break in app.js:4
 2 function foo(){
 3 console.log('hello,foo')
> 4 return 100;
 5 }
 6 var bar = 'This is a pen';
debug> o
break 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,word
break in app.js:6
Watchers:
 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> n
break in app.js:7
Watchers:
 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> n
break in app.js:8
Watchers:
 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,foo
break in app.js:9
Watchers:
 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
< 100
break 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之调试器详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# nodejs  # 调试器  # vscode调试node.js的实现方法  # Node.js使用supervisor进行开发中调试的方法  # 详解如何在vscode里面调试js和node.js的方法步骤  # sublime text配置node.js调试(图文教程)  # 详解使用Visual Studio Code对Node.js进行断点调试  # Node.js利用debug模块打印出调试日志的方法  # Node.js调试技术总结分享  # 利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)  # 调试Node.JS的辅助工具(NodeWatcher)  # Node.js 深度调试方法解析  # 所示  # 一句  # 给大家  # 行号  # 可以利用  # 命令行  # 如图所示  # 第一个  # 不需要  # 可以用  # 可以通过  # 希望能  # 可以使用  # 还可  # 这篇  # 所处  # 小编  # 可执行  # 可利用 


相关文章: 如何做静态网页,sublimetext3.0制作静态网页?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  广平建站公司哪家专业可靠?如何选择?  建站之星安装步骤有哪些常见问题?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  如何选择适配移动端的WAP自助建站平台?  香港服务器WordPress建站指南:SEO优化与高效部署策略  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  如何通过虚拟主机快速完成网站搭建?  如何在七牛云存储上搭建网站并设置自定义域名?  如何通过智能用户系统一键生成高效建站方案?  重庆网站制作公司哪家好,重庆中考招生办官方网站?  招贴海报怎么做,什么是海报招贴?  如何撰写建站申请书?关键要点有哪些?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  如何在阿里云服务器自主搭建网站?  建站主机服务器选购指南:轻量应用与VPS配置解析  桂林网站制作公司有哪些,桂林马拉松怎么报名?  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  建站之星代理如何获取技术支持?  如何高效完成自助建站业务培训?  如何通过商城免费建站系统源码自定义网站主题?  宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?  子杰智能建站系统|零代码开发与AI生成SEO优化指南  如何快速搭建FTP站点实现文件共享?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  如何使用Golang table-driven基准测试_多组数据测量函数效率  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  音乐网站服务器如何优化API响应速度?  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  如何在西部数码注册域名并快速搭建网站?  外贸公司网站制作,外贸网站建设一般有哪些步骤?  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  建站主机如何选?性能与价格怎样平衡?  如何用IIS7快速搭建并优化网站站点?  如何通过网站建站时间优化SEO与用户体验?  网站设计制作企业有哪些,抖音官网主页怎么设置?  浅谈Javascript中的Label语句  网站制作话术技巧,网站推广做的好怎么话术?  微课制作网站有哪些,微课网怎么进?  长沙做网站要多少钱,长沙国安网络怎么样?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  股票网站制作软件,网上股票怎么开户?  实例解析Array和String方法  企业网站制作公司网页,推荐几家专业的天津网站制作公司?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。