node.js和Segmentation错误

是否有可能在node.js进入分段错误时检查javascript堆栈跟踪?

目前的情况如下:我正在运行一个脚本,它有几个嵌套的async.eachSeries ,这导致了一个奇怪的原因RangeError: Maximum call stack size exceeded 。 因此,我已经增加了堆栈大小通过node --stack-size=1000000堆栈大小node --stack-size=1000000 ,我留下了分段错误。

以下是脚本的源代码: http : //nopaste.info/ca0c118591.html

更新

我也试过segfault-handler ,但由于一些不可思议的原因,它不捕捉我的段错误。

有一个segfault-handler模块,它捕获非Windows平台上的段错误并生成堆栈跟踪。 但是,如果你得到一个RangeError ,那不是一个段错误。

这可能意味着你在你的代码中有recursion的地方。 由于V8取消了对TCO(尾部呼叫优化)的支持,呼叫大小将增长,直至爆炸。

使用--stack_size似乎是一个自然的解决scheme,但实际上并没有增加堆栈大小,它告诉V8假设有一个更大的堆栈大小,实际上这是由操作系统控制的。

资料来源:

所以现在(使用Node.js 8.x)最好的解决scheme是简单的停止使用recursion函数。