首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >node.js与分割故障

node.js与分割故障
EN

Stack Overflow用户
提问于 2014-12-05 13:22:22
回答 2查看 12.3K关注 0票数 9

node.js发生分段错误时,可以检查javascript堆栈跟踪吗?

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

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

更新

我也尝试过segfault-handler,但由于一些难以理解的原因,它没有捕捉到我的分段错误。

EN

回答 2

Stack Overflow用户

发布于 2014-12-05 13:37:19

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

票数 2
EN

Stack Overflow用户

发布于 2017-11-27 16:10:35

这可能意味着您的代码中有递归。由于V8取消了对TCO (尾呼叫优化)的支持,因此呼叫的大小会增加,直到它爆炸为止。

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

资料来源:

因此,现在(使用Node.js 8.x )最好的解决方案是简单地停止使用递归函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27316888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档