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 5858
connecting to 127.0.0.1:5858 ... ok
break in O:\DEMO\leran-nodejs-debugger\app.js:1
> 1 var express = require('express');
2 var app = express();
3
debug>
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> repl
Press Ctrl + C to leave debug repl
> req_times
0
debug> n
break in O:\DEMO\leran-nodejs-debugger\app.js:12
10 req_times++;
11
>12 debugger;
13
14 var req_url = req.url;
debug> repl
Press Ctrl + C to leave debug repl
> req_times
1
> 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:22
debug> list(4)
8 debugger;
9
10 req_times++;
11
>12 debugger;
13
14 var req_url = req.url;
15
16 debugger;
debug> watchers
debug> watch('req_times')
debug> watchers
0: req_times = 1
debug> 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.js
debug>
2016/8/27
参考:http://nodejs.cn/doc/node/deb…
by:wdd