问题描述
||
这个问题已经在这里有了答案:
解决方法
的Linux
通过以下命令激活核心转储:
ulimit -c unlimited
另外,通过以下方法检查“ 1”值:
sysctl kernel.core_pattern
查看创建转储的位置(ѭ3是进程名称,ѭ4是系统时间)。
您可以在/etc/sysctl.conf中进行更改,然后按sysctl -p
重新加载。
您可以通过以下方式进行测试:
sleep 10 &
killall -SIGSEGV sleep
如果核心转储成功,则在分段故障指示之后您将看到“(核心转储)”。否则,再次仔细检查您的7英镑。
也可以看看:
如何在Linux发生分段故障时生成核心转储?
我的程序崩溃时如何自动生成stacktrace
的Ubuntu
如果您使用的是Ubuntu,则转储文件是由Apport在ѭ8中创建的,但是默认情况下处于禁用状态。
有关更多详细信息,请检查:在Ubuntu哪里可以找到核心转储?
macOS / OS X
在macOS中,Crash Reporter会以回溯的形式自动创建故障转储。
您可以通过执行控制台并转到“用户诊断报告”部分(在“诊断和使用情况信息”组下)找到这些崩溃文件,也可以在ѭ9中找到它们。
实际的核心文件在ѭ10中生成。
阅读更多:如何在Mac OS X中生成核心转储?
, 检查ѭ11的输出,如果输出0,这就是为什么您没有转储内核的原因。
采用
ulimit -c unlimited
允许创建核心(也许用实际大小限制代替ѭ13才更安全)。
, 将最大核心转储大小设置为ulimit -c
SIZE。