后端资源精选程序员我爱编程

Node.js Debugger

2017-05-03  本文已影响150人  小菜荔枝

Debugger

稳定性:2-Stable

Debugger

为了方便开发,开发人员可以使用Debugger模块进行调试,其功能是基于TCP协议和Node.js内置的调试客户端实现的,使用时添加命令行参数debug即可。照比一些IDE的调试功能,Debugger还不是很全面,但也可以满足大多数的调试需求

$ node debug main.js
< Debugger listening on [::]:5858
connecting to 127.0.0.1:5858 ... ok
break in main.js:477
 475 
 476 
>477 const Koa = require('koa');
 478 const app = new Koa();
 479 // app.use(async (ctx, next) => {
debug> 

如果想在调试的时候设置断点,可以在你的源代码中添加debugger语句,这样调试时程序就会在这行停住

// 一个简单的demo main.js
let a = `Hello I am a`;
let b = ['I', 'am', 'b'];
let obj = {
  string: 'string',
  arr: [1,2,3],
  num: 1
}
debugger;// 在这里设置断点
console.log('finish debugger');

开始调试main.js,这次调试的目的是在断点停住时查看a,b,obj的值,具体说明请看下面的注释

$ node debug main.js 
< Debugger listening on [::]:5858
connecting to 127.0.0.1:5858 ... ok
break in main.js:491
 489 // console.log(`server is running at ${port}`);
 490 
>491 let a = `Hello I am a`;  // 程序运行的第一行代码会默认设置断点,在这停住
 492 let b = ['I', 'am', 'b'];
 493 let obj = {
debug> c  // c代表代码继续执行
break in main.js:498
 496   num: 1
 497 }
>498 debugger;  // 这一行停住
 499 console.log('finish debugger');
 500 });
debug> repl  // 开启repl,Ctrl + C退出repl
Press Ctrl + C to leave debug repl
> a  //查看a变量
'Hello I am a'
> b //查看b变量
[ 'I', 'am', 'b' ]
> obj //查看obj变量
{ string: 'string', arr: [ 1, 2, 3 ], num: 1 }
> test // 查看test,但是没有定义
ReferenceError: test is not defined
debug> c  //退出repl后再次继续运行代码
< finish debugger
debug> 

Command reference

下面介绍调试常用的一些命令,您也可以在调试的过程中输入help来查看这些命令

Stepping
Breakpoints
Information
Execution control
Various

Advanced Usage

如果一个Node.js的程序通过--debug参数启动的(注意是--debug不是debug),如下图,通过--debug参数启动程序,我们可知Debugger URLpid分别是127.0.0.1:585810547,根据这两个值也可以直接调试该程序

pid 和 URL 的用法

V8 Inspector Integration for Node.js

通过V8强大的集成监视器来调试,注意,这只是一个实验性的功能。通过它,我们就可以使用Chrome DevTools来调试我们的Node.js程序,使用命令行参数--inspect即可,这时,Debugger会默认监听9229端口,如果想指定Debugger的端口,如8888端口,可以使用--inspect=8888,如果想在程序的第一行打断点停住,可以加上--debug-brk参数,直接上图

V8 Debugger

本文档是根据文档Node.js v6.10.3 Documentation进行总结的,如您在阅读的过程中发现问题,请联系作者,感谢您的支持!

简书作者 小菜荔枝 转载请联系作者获得授权

上一篇 下一篇

猜你喜欢

热点阅读