nodejs的调试
js的调试始终是一个比较麻烦也是比较困难的事情,从最原始的alert调试,到火狐的firebug工具,在到后来各个浏览器厂商的调试工具。调试工具的发展历程,也可以看出由JS构建的业务和技术逻辑越来越复杂,最初的调试工具已经不能很好的满足复杂逻辑调试。随着nodejs在服务端变得越来越热门,对于nodejs的调试也成了各个nodejs开发人员头痛的问题,还好现在各种调试工具也在不断的出现。今天主要总结一下命令行调试工具和inspector调试工具。
一 命令行调试工具使用
命令行调试工具使用,需要在启动js文件,通过这样的方式: node debug example.js,
》 node debug example.js

调试模式启动之后,默认程序停在了当前执行文件的第一行, 可以通过 next(n) 下一步, continue(cont), 执行到下一个断点,run(r)执行程序完成 ,step(s)进入函数内部,out(o)退出函数内部,backtrace(bt)打印当前执行堆栈, setBreakpoint(sb) 设置断点, clearBreakpoint(cb) 清楚断点, repl开启一个表达式执行控制台,restart重启调试,list(k)列出当前行,前后k行代码, scripts已经加载的JS文件列表等。
对于watch 和unwatch命令,能够增加对变量值的监控,通过watch('a), 之后,可以实时查看变量a值的变化,同时也可以通过unwatch('a')的方式取消监控。

还有另外一种方式启动调试模式,即通过kill命令给执行的node进程发送SIGUSR1信号,发送方式为: kill -s USR1 pid,
通过命令行的方式,可以在需要调试的时候,快速进入调试,从而解决问题,但是对于对命令行操作感觉有点困难的人来说,这个不是很友好的方式。当然inspector这方面就可能比较有优势。
二 inspector调试工具的使用
当然Inspector调试工具集成了V8引擎内部的调试API和Blink的界面交互功能,从而使的服务端JS的调试也可以像浏览器端调试JS那样方便。但是这种调试方式也只能在具有 blink开发工具的浏览器下进行。
为了能够使用inspector工具,首先需要安装他,当然了这个只是作为开发的全局安装: npm install -g node-inspector
安装完成之后,要调试某个JS文件,首选需要开启调试模式,比如上边的example.js 那么开启模式为:node debug example.js
然后在另外的terminal 启动 inspector ,启动方式为: node-inspector ,操作界面是每个前端都非常熟悉的界面,如下:

通过这两种方式,后期我们在开发的时候,就能够很好的调试nodejs。
nodejs的调试的更多相关文章
- NodeJs之调试
关于调试 当我们只专注于前端的时候,我们习惯性F12,这会给我们带来安全与舒心的感觉. 但是当我们使用NodeJs来开发后台的时候,我想噩梦来了. 但是也别泰国担心,NodeJs的调试是很不方便!这是 ...
- nodejs的调试debug
目录 简介 开启nodejs的调试 调试的安全性 使用WebStorm进行nodejs调试 使用Chrome devTools进行调试 使用node-inspect来进行调试 其他的debug客户端 ...
- Linux下用node-inspector实现NodeJS远程调试开发
1.首先安装 node-inspector npm install -g node-inspector -g表示全局安装,如果像我一样安装失败,再试几次,npm偶尔就会这样抽风... 这一步是关键的, ...
- sublime配置nodejs运行调试js
node.js调试javascript的配置 1. 首先到 nodejs.org 下载 Node.js 安装包并安装.2. 打开 Sublime Text 编辑器.选择菜单 Tools --> ...
- Nodejs chrome 调试node-inspector
1.下载扩展: 全局安装 npm install -g node-inspector 2.开启debug调试: node --debug[=port] filename (默认端口5858)node ...
- 搞定 NodeJS 开发调试
代码调试有时候是一种充满挑战的工作,如果有一个趁手的调试工具的话,往往可以做到事半功倍的效果.得益于这些年的快速发展,在 NodeJS 生态中已经有了多种调试工具可以使用.我们今年就来分享几个常用的调 ...
- nodejs的调试(node-inspector)
我们在接触客户端javascript的时候,调试利器就是firebug ,也是当年为何喜欢用上firefox 浏览器的主要动力,当然,后来 chrome 插件里也出现了firebug的身影..... ...
- nodejs开发调试时,使用supervisor
如果你有 PHP 开发经验,会习惯在修改 PHP 脚本后直接刷新浏览器以观察结果,而你在开发 Node.js 实现的 HTTP 应用时会发现,无论你修改了代码的哪一部份,都必须终止Node.js 再重 ...
- NodeJS代码调试
1.在Chrome打开chrome://flags/#enable-devtools-experiments 2.激活Developer Tools experiments 3.重启Chrome 4. ...
随机推荐
- cdll和windll的差别
Python要想调用C语言写的动态连接库.不仅要兼容C接口的调用习惯,还须要兼容C语言的数据类型.幸运的是ctypes库已经做了这双方面的工作.以便调用动态连接库是很方便的.在Hello World的 ...
- Codeforces Round #321 (Div. 2) E. Kefa and Watch 线段树hash
E. Kefa and Watch Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/580/prob ...
- Codeforces Round #320 (Div. 1) [Bayan Thanks-Round] B. "Or" Game 线段树贪心
B. "Or" Game Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/578 ...
- SpiderMonkey-让你的C++程序支持JavaScript脚本
译序 有些网友对为什么D2JSP能执行JavaScript脚本程序感到奇怪,因此我翻译了这篇文章,原文在这里.这篇教程手把手教你怎样利用SpiderMonkey创建一个能执行JavaScript脚本的 ...
- valgrind 生成mysqld调用图之 select now()跟踪
1.mysqld起动方式: 1.mysqld以root用户运行 valgrind --tool=callgrind --separate-threads=yes --trace-children=y ...
- 管道技巧-while read line
http://blog.csdn.net/hunanchenxingyu/article/details/9998089
- 文件和目录之link、unlink、remove和rename函数
任何一个文件可以有多个目录项指向其i节点.创建一个指向现有文件的链接的方法是使用link函数. #include <unistd.h> int link( const char *exis ...
- IIS 之 启用日志记录
如何为网站启用日志记录或 在 Microsoft Internet Information Services (IIS) 6.0 中,在 IIS 5.0 中,并在 IIS 4.0 中的FTP 站点.可 ...
- PHP代码安全学习笔记V1.0
PHP代码安全学习笔记V1.0http://www.docin.com/p-778369487.html
- C++之类的析构函数
一.认识析构函数 在我的前一篇博客介绍了类的构造函数.http://www.cnblogs.com/MrListening/p/5557114.html. 这里我们来简单说说类的析构函数,它是类的一个 ...