第六十六期:奇怪的知识,用命令行调试Node程序

313 阅读2分钟

这里记录工作中遇到的技术点,以及自己对生活的一些思考,周三或周五发布。

封面图

命令行调试Node

在某些情况下,用Chrome Devtool进行调试可能不太方便,或者我们联结GUI不是特别容易,比如用浏览器调试移动应用。

这种情况下,用命令行进行调试似乎就会变的很重要了。

执行如下命令,我们可以让Node 程序进入调试模式:

node debug index.js

我们可以看下图:

进入调试模式后,我们首先可以看到入口文件的前三行内容。

进入调试模式,进程在入口文件的第一行处默认暂停。默认情况下,当出现断点时,调试器会在当前代码行之前和之后显示两行代码,因为这是我们只看到后面两行的第一行代码。

调试模式默认提供了很多方法:比如我们可以用list方法获取上下文。

debug> list(10)

这样我们可以从当前行前后都多看到10行内容。

但是如何给我们想要的代码加上断点呢?我们可以使用sb(n)方法,sb 代表 set break 。比如:

debug> sb(7)

然后我们重新执行list(10)

可以看到7行多了一个星号*。

然后我们执行命令c,让程序继续往下走。

debug> c

接下来我们执行下面的命令,当然也可以打开浏览器输入地址:http://localhost:3000/31

$ curl http://localhost:3000/31

这样就会触发我们在代码中设置的断点。

想要进入这个断点,我们需要执行step命令。

debug> step

这样我们就进入了past.js文件中。

我们可以使用exec命令打印出引用值。

debug> exec gap

比如,我们可以打印gap和age的值。

打印完成后,我们希望跳出past.js文件。

这时候我们需要执行out 命令。

debug> out

我们可以看到断点又回到了index.js,同时,future方法被标记成了绿色,表明接下来要执行的就是它。

我们继续执行step命令,进入future.js文件。

同样的,执行exec gap,即可打印出我们想要打印的内容。

可以看到,age 是一个undefined。

以上就是用命令行调试Node 程序的一个简单的流程。

最后

  • 公众号《JavaScript高级程序设计》
  • 公众号内回复”vue-router“ 或 ”router“即可收到 VueRouter源码分析的文档。
  • 回复”vuex“ 或 ”Vuex“即可收到 Vuex 源码分析的文档。

近期公众号的域名过期了,收到回复后,会人工回复对应的内容,谢谢。

全文完,如果喜欢。

请点赞和"在看"吧,最好也加个"关注",或者分享到朋友圈。