博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用nodejs自带debug工具调试nodejs
阅读量:7166 次
发布时间:2019-06-29

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

1 示例代码

app.js

var express = require('express');var app = express();var req_times = 0;app.all('/*', function(req, res){    req_times++;    var req_url = req.url;    var req_method = req.method;    var req_query = req.query;    res.end('debugger test');});app.listen(3000);console.log('app running on port 3000...');

2 插入断点

方法:在需要设置断点的地方插入debugger关键字,程序会在这里暂停运行。

app.all('/*', function(req, res){            debugger;        req_times++;        debugger;        var req_url = req.url;        debugger;        var req_method = req.method;        debugger;        var req_query = req.query;        debugger;        res.end('debugger test');});

3 开启debugger 命令模式

node debug app.js

PS O:\DEMO\leran-nodejs-debugger> node debug app.js< Debugger listening on port 5858connecting to 127.0.0.1:5858 ... okbreak in O:\DEMO\leran-nodejs-debugger\app.js:1> 1 var express = require('express');  2 var app = express();  3debug>

4 debug模式下常用命令

4.1 步骤跳跃相关命令

  • cont ,c 继续执行

  • next , n 跳到下一个断点处

  • step , s 进入某个函数

  • out , o 跳出某个函数

  • pause 暂停执行某个函数

  • setBreakpoint(), sb() 再当前行设置断点

  • setBreakpoint(line), sb(line) 在指定行设置断点

  • clearBreakpoint('script.js', 1), cb(...) 清除某行的断点

4.2 信息查看相关命令

  • backtrace, bt 打印当前执行记录

  • list(5) 打印当前执行代码的前后5行

  • watch('expr') 增加一个表达式到观察列表

  • unwatch('expr') 删除一个表达式

  • watchers 列出所有观察列表,表达式和值

  • repl 进入repl环境

  • exec expr 执行一个表达式在断点的上下文

4.3 执行控制

  • run 运行脚本,在debug的开始出

  • restart 重新运行脚本

  • kill 关闭脚本

4.4 其他方面

  • scripts 列出所有已经加载的脚本

  • version 查看v8的版本号

5 命令演示

查看变量值需要进入==repl==环境。只需要在命令模式输入repl,按回车便可以进入repl环境。

debug> replPress Ctrl + C to leave debug repl> req_times0debug> nbreak in O:\DEMO\leran-nodejs-debugger\app.js:12 10     req_times++; 11>12     debugger; 13 14     var req_url = req.url;debug> replPress Ctrl + C to leave debug repl> req_times1> req.method'GET'> req.url'/'debug> bt#0 app.js:12:5#1 layer.js:95:5#2 route.js:131:13#3 route.js:125:14#4 route.js:125:14#5 route.js:125:14#6 route.js:125:14#7 route.js:112:3#8 layer.js:95:5#9 index.js:277:22debug> list(4)  8     debugger;  9 10     req_times++; 11>12     debugger; 13 14     var req_url = req.url; 15 16     debugger;debug> watchersdebug> watch('req_times')debug> watchers  0: req_times = 1debug> scripts* 58: app.js  61: index.js  62: express.js  63: index.js  64: application.js  65: index.js  66: node.js  70: debug.js  71: index.js  72: index.js  73: index.js  74: index.js  75: index.js  76: index.js  77: index.js  78: route.js  79: array-flatten.js  80: layer.js  81: index.js  82: index.js  94: index.js  95: index.js  96: index.js  97: index.js  98: init.js  99: query.js  100: index.js  101: stringify.js  102: utils.js  103: parse.js  104: view.js  105: utils.js  106: index.js  107: index.js  108: index.js  109: index.js  110: index.js  111: inherits.js  112: index.js  113: index.js  114: index.js  118: index.js  119: mime.js  120: index.js  127: index.js  128: index.js  129: ipaddr.js  133: request.js  134: index.js  135: index.js  136: index.js  137: index.js  138: index.js  139: index.js  144: response.js  145: index.js  146: index.js  147: index.js  149: index.jsdebug>

2016/8/27

参考:

by:wdd

转载地址:http://jvqwm.baihongyu.com/

你可能感兴趣的文章