资讯专栏INFORMATION COLUMN

使用nodejs自带debug工具调试nodejs

he_xd / 3351人阅读

摘要:示例代码插入断点方法在需要设置断点的地方插入关键字,程序会在这里暂停运行。只需要在命令模式输入,按回车便可以进入环境。

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:DEMOleran-nodejs-debugger> node debug app.js
< Debugger listening on port 5858
connecting to 127.0.0.1:5858 ... ok
break in O:DEMOleran-nodejs-debuggerapp.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:DEMOleran-nodejs-debuggerapp.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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/81653.html

相关文章

  • nodejs调试方法

    摘要:调试方法提供了一个内建调试器来帮助开发者调试应用程序。这两个参数只会启动监听模式,不会进入命令行调试模式,而且前者会运行完所有代码,通常可用于事件调试,后者会在进入时中断,方便从头开始调试。安装编辑器使用配置调试的配置信息如下图。 Nodejs调试方法 1. Node debug Nodejs提供了一个内建调试器来帮助开发者调试应用程序。使用debug模式时,Node.js 会启动De...

    jcc 评论0 收藏0
  • VSCODE下调试 Electron 项目

    摘要:最近使用开发了一套软件,记录一下遇到的调试问题所需工具官网链接本次所使用的版本为本次直接使用的链接官网链接配置方式我们使用的项目初始配置已经完成。建议端代码在主进程中运行调试确定无误后再引入渲染进程中减少调试工作难度。 最近使用electron开发了一套软件,记录一下遇到的调试问题 所需工具 vscode 官网链接; electron,本次所使用的版本为: Electron: 1...

    LittleLiByte 评论0 收藏0
  • 使用typescript开发调试nodejs

    摘要:原文地址这两天在看也在入门中网上大部分教程都是前端配置开发调试这个也有很多相当成熟的实践教程这篇文章主要是的配置说起来也是相当简单的不涉及任何的语法与概念同时也可以根据本文配置的开发环境主要是模块部分的使用说起大家应该都挺熟悉了是一个 原文地址 https://github.com/xiadd/blog/issues/8 这两天在看ts,也在入门中, 网上大部分教程都是前端配置ts开发...

    张春雷 评论0 收藏0
  • 利用vscode调试nodejs代码实践总结

    摘要:支持,和三种环境,并且可以安装扩展插件,因而可以满足绝大多数人的要求,安装配置非本文所要讲述的内容,请自行查找,本文着重讨论如何用更好的调试代码,希望能对大家有所帮助。 2018.5.12更新 最近在用vscode 1.23版本的时候发现outDir不可以使用了,建议这么改吧,直接program采用编译后的文件,然后打开sourceMaps,同时在babel编译的时候自己搞--watc...

    chenatu 评论0 收藏0
  • 使用Chrome DevTools调试Nodejs

    摘要:第三步在打开在地址栏输入并回车后就会看到以下页面了点击上面的链接跳转到调试页面你会看到一个调试当前代码的弹窗。更好的体验是,当你的重启后,这个调试窗口会重新连接。从上图,你会看到一堆经常用到的调试工具。 事实上chrome devtools在2016年5月就已经支持Nodejs的调试了,具体可以观看英文原版Google I/O上的视频 第一步:下载和安装最新版本的Nodejs(要求6....

    shadajin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<