节点错误堆栈跟踪未定义
我有一些长时间运行的节点代码,在一段时间后会打印出[RangeError: Maximum call stack size exceeded]
错误,并继续无限期地执行。
要追查什么recursion调用导致这(我找不到任何recursion,我没有使用setTimeout
或process.nextTick
),我做到了这一点:
process.on('uncaughtException', function(error) { console.log(error); console.log(error.stack); });
这抓住了错误,但stack
属性是undefined
! 我试图抛出自己的错误, stack
属性显示预期的堆栈。 节点不应该堆栈溢出错误? 我怎样才能确定哪些呼叫造成这种情况?
你不必在JavaScript中抛出一个Error
对象。 这甚至可以是一个string。 所以当你的应用程序崩溃时,你不能依靠定义的stack
属性。
从你所描述的你有一个内存泄漏你的应用程序,你应该尝试find。 网上有很多教程。 还有一个模块可以在https://www.npmjs.com/package/memwatch上find一个名为memwatch
的漏洞。