我刚刚读了Netflix的这篇博客文章——读得很好。我一直在玩上面提到的工具等;尤其是通过设置CCD_ 1标志来对未捕获的异常生成核心转储。例如,这里也描述了这一点。我认为到目前为止,它只使用了一个简单的测试脚本(它只会抛出一个错误),正如我看到的输出:
Uncaught Error: foo
FROM
run (/tmp/test/index.js:4:9)
wrapper [as _onTimeout] (timers.js:265:14)
Timer.listOnTimeout (timers.js:110:15)
[1] 18165 illegal hardware instruction (core dumped) node --abort-on-uncaught-exception index.js
然而,我似乎太愚蠢了,找不到这个实验应该产生的实际核心转储文件(?)。我查看了网络上提到的/var/cores/
和/opt/cores/
,但这些目录并不存在。快速的CCD_ 4也没有产生任何有用的东西。我错过了什么?
EDIT:节点版本为v0.12.0。
啊,没关系。橡皮鸭的完美例子。。。刚刚发现,如果ulimit -c
设置为0
,就不会创建核心文件,我的机器就是这样(例如,请参阅此处)。调整此设置使core
文件在工作目录中弹出。
对我来说,在MacOSX上,它们似乎存放在/cores
目录中,例如/cores/core.5748
。正如您所提到的,您需要运行--abort-on-uncaught-exception
0来告诉操作系统保存核心文件。