9

我有一个单进程 node.js 应用程序,我希望使用 Intellij IDEA 11 32 位(node.js 也是 32 位)进行调试。

所以,我放置一个初始断点并运行。调试器在断点处停止,但随后拒绝执行以下任何操作:

  • 踏入
  • 转到另一个断点
  • 暂停执行

当我进入时,它似乎只是在运行,而不是单步执行代码。一旦运行,它会忽略任何后续断点,并且在我按下暂停按钮时不会中断。

这个问题让我抓狂。关于我应该如何解决它的任何想法?

编辑

更多信息。在 IDEA 在第一个断点(唯一成功的时间)上中断后,我尝试检查变量并且看不到任何变量。IDEA 卡在“正在收集数据...” 监视窗口也不起作用。

编辑2

Justed 向他们的错误跟踪系统发布了一个问题 - http://youtrack.jetbrains.com/issue/IDEA-112925

4

2 回答 2

10

我一直注意到 IntelliJ 的 node.js 调试器有点糟糕。1000刀就死了。我爱死 IntelliJ,它是一个非常棒的 IDE。但是对于节点,调试器有一百万种不同的情况,其中断点无法正常工作,另外一百万种情况下它不能正确地让您访问范围内的变量值,还有一百万种情况下它不能正确执行。 ..

我要去尝试寻找另一个工具..

更新2014-01-13:我已经使用 IntelliJ 的调试器有一段时间了(没有找到其他好的工具)。似乎它的一些问题是节点或 v8 本身的问题。我遇到的大多数问题实际上已经被较新版本的 IntelliJ 解决了,或者通过使用以下解决方法:

1. 创建一个名为 proxyDebug.js 的文件

2. 将以下内容放入其中:

require('path/to/the/script/you/want/to/debug.js')

3. 将您的调试器指向该文件

显然 node.js 调试钩子在入口点脚本中出现错误,因此通过创建我们根本不关心的代理入口点,在您关心的脚本中不会出现任何奇怪的错误。此解决方法修复的错误包括断点丢失、调试器无法访问预定义变量(exportsmoduleprocess等),以及我不记得的一两件事。

于 2013-09-21T07:24:31.820 回答
5

我尝试的最后一个 WebStorm 版本(7.0.3)实际上需要很长时间来收集数据,但最终还是可以工作。如果它似乎粘在你身上,试着让它离开一分钟

于 2014-01-13T14:22:16.163 回答