【发布时间】:2017-04-05 09:09:03
【问题描述】:
我正在使用 node-debug 并且知道我要为其设置断点的文件和行。
发生了什么:
debug> setBreakpoint('./services/search.js', 359)
Warning: script './services/search.js' was not loaded yet.
You can't list source code right now
为什么我不能“列出源代码”?如何动态添加断点(无需编辑源代码添加debugger)?
我尝试了其他工具进行调试,并且很想使用 Chrome 开发工具,但由于我们的项目卡在 v0.12.3 上,因此我认为这是不可能的。
另外,一些选项是有限的/棘手的,因为我正在使用带有无头 VM 的 Vagrant。
【问题讨论】:
-
node-inspector 应该适用于 0.12。 (在节点 >= 6 中,请改用内置的
node --inspect。) -
@josh3736 我尝试了节点检查器,但它似乎无法正常工作。如果我在第一行使用 console.log 制作一个简单的程序,则不会记录任何内容。而且,在虚拟机中,如果我 curl localhost:8080,没有响应
-
使用节点检查器,我很确定
console.loged 的东西会出现在标准输出中(像往常一样),而不是检查器控制台。此外,您的测试脚本可能会在您有机会连接调试器之前完成。我会在一个窗口中运行node-inspector,然后在另一个窗口中运行node --debug-brk myscript.js。然后您可以在网络浏览器中打开检查器并开始执行。 -
@josh3736 使用节点检查器,标准输出中没有显示任何内容。而且我的小测试脚本有
debug行,所以不需要 --debug-brk 。我正在尝试使用一个小脚本:var x = 2; console.log(x); debugger; x = 3; console.log(x);console.log('done');也尝试使用大型 Express 应用程序。 -
debugger如果在执行该行时没有 attached 调试器,则语句无效 - 所以是的,--debug-brk是您的测试脚本所必需的。 (虽然奇怪的是您的日志没有显示在标准输出上...process.stdout.write?)
标签: node.js debugging remote-debugging node-debugger