用io.js和gdbdebugging无限循环

我有一个应用程序出去抓取一堆url。 有时会随机locking100%的CPU使用率。 无论发生什么事情,它都处于一种从未返回事件循环的状态,因为我无法用node-inspector做任何事情,我的logstash事件停止被触发,strace显示我没有进一步的系统调用等。

我希望能够joinGDB,看看能否以这种方式获得某种洞察力。 我发现了Remy Sharp的一篇文章,他可以在这里用node来做到这一点: https : //remysharp.com/2013/09/11/how-i-fixed-an-anonymous-infinite-loop-in-jsbin 。 不幸的是,io.js使用的更新的V8发生了变化。 我发现,当我跟着他的例子,我卡住了他运行print 'v8::V8::TerminateExecution'(0) 。 V8显然从API中删除了TerminateExecution函数(请参阅https://stackoverflow.com/a/19408894/918195 )。 对GDB没有经验我偶然尝试调用v8::V8::TerminateExecution(v8::Isolate*) ,在那篇文章中提到无济于事。

在这一点上,我觉得我将不得不深入挖掘V8源代码中的兔子洞,以便了解如何使用GDB来解决这个问题。 如果可能,我希望避免这种情况。

任何关于如何使用GDB与io.js或另一种方式来寻找导致我的进程挂在100%的CPU的代码(我猜一些无限循环条件 – 可能在第三方库中我是使用)?