Debugging 如何使用node inspector正确调试node.js?
我在node.js中内置了一个应用程序,我使用node inspector进行调试。 但这很难,因为:Debugging 如何使用node inspector正确调试node.js?,debugging,node.js,Debugging,Node.js,我在node.js中内置了一个应用程序,我使用node inspector进行调试。 但这很难,因为: 重新启动服务器后,我的断点永远不会保存 我无法在尚未加载的文件上设置断点;因此,我必须从第一个脚本进入到我想要的脚本;真痛苦 如何使用node inspector调试node.js 关于如何使用node.js的视频很容易误导人,因为所有内容都包含在一个模块中… 或者,出现的脚本已经加载到第一个脚本中 编辑: 没有人能回答这个问题客户端断点的问题是,当文件更改时,很难跟踪断点的位置。与编辑器
或者,出现的脚本已经加载到第一个脚本中
编辑:
没有人能回答这个问题客户端断点的问题是,当文件更改时,很难跟踪断点的位置。与编辑器不同,它无法跟踪正在更改的行等 @RyanOlds建议使用调试器;语句也是一个很好的语句,但是您必须确保在计算语句之前已连接调试器,否则将忽略它。从--debug brk开始是强制执行的好方法,因为执行在第一行暂停,允许您附加调试器,然后继续执行 您可以尝试使用节点的进行调试 编辑:但是,根据脚本,可以在尚未加载的脚本上设置断点,您可以按函数、脚本等设置断点。因此,node inspector应该可以跟踪断点(在会话中或其他任何情况下)。不过,它现在没有这样做 也许如果v8允许某段代码触发断点,类似于nodes调试器?
编辑:确实如此,您应该能够通过抛出任何旧的异常(捕获或未捕获)触发中断。尝试使用IntelliJ WebStorm-有一个免费的试用版,并且许可证并不昂贵。它允许您在启动自己的内部节点进程之前在所有文件中保存断点,并在进程重新启动时记住断点 我同意-node inspector看起来很出色,但它是非常无用的,除非你的应用程序在源文件加载之后,但在你到达你想要调试的区域之前,有一个清晰的位置在顶级脚本中设置断点。您可以用这种方式构造自己的代码,但如果有其他想要包含的有用库,您就不会这么幸运了。也。。。为什么调试工具应该指定您的项目结构
忘记断点是非常没有帮助的。。。我的大多数调试运行都需要不止一次的演练,就像在其他人的代码中一样,很容易跨过您想要的位置。您可以使用节点codein进行检查。它不会执行运行时断点,但应该可以简化检查过程
在javascript中,您可以使用
调试器设置断点代码>语句。但是,只有在实际附加了调试器时,它们才会暂停节点
因此,使用
node --debug-brk myfile.js
然后启动node inspector并按play按钮继续到下一个断点,它将命中调试器代码>断点(至少对我有效)
(如注释中所述:在node的最新版本中,您不再需要单独安装node inspector。如果使用node--debug brk--inspect myfile.js启动node,您将获得一个在浏览器中启动调试器的url)
重新启动后仍然需要额外单击一次,但至少保存了断点
如果断点未自动命中,但仅在用户执行某些操作后,您当然不需要使用--debug brk
。node inspector的新版本(0.3.x)将断点保存在浏览器的本地存储中并自动恢复
也值得注意。。vscode有一个很好的节点调试器
可在Mac、Linux和Windows上使用
它执行运行时断点(无需编写调试器;语句),
支持变量监视,甚至有一个调用堆栈窗口(非常好)
一切都是如此自动化,现在当我使用nodejs(我喜欢sublime)时,它是我对sublime文本的转到。这是现在内置的,包括保存断点。我刚刚在Node7.3.0中测试了它
node--inspect--debug brk app.js
这会像这样打印一个url
要开始调试,请在Chrome中打开以下URL:
铬-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9229/c3d5d93e-9d27-41b9-a4da-607e43c9d4f8
把它放在铬上,你就可以走了
如果要跳过复制/粘贴url,请执行以下操作:
npm安装-g检查过程
检查--调试brk app.js
不幸的是,inspect进程
方法没有保留断点:-(
这里是我制作的一个视频:1和2都是关于节点检查器的有效投诉。还有其他调试方法,插件到Eclipse或使用节点--debug
加上使用调试器在代码中添加断点;
。我尝试了Eclipse,但在尝试了一周多后放弃了。现在我遇到了Sublime Text 2,这真是一个错误我使用的东西比eclipse要好。我将搜索是否存在任何用于sublime的调试器text@Totty:您找到sublime的调试器了吗?没有,我仍然使用node inspector。速度非常慢,所以我尽可能使用console.log。node.js中的一个难点可能是指向内部调试器的handy链接的重复-我想知道我是怎么做的ng这样做。事实上,我曾经放置过调试器;语句,v8确实像预期的那样在它们上面中断。同事刚刚在这个答案中发现了我的名字。是否有可能Node.js在连接节点检查器之前已经通过了调试器;
?我很确定v8忽略了断点,并且调试器;
,除非连接了调试客户端。使用--debug-brk可能会更幸运,它会告诉V8中断