如何在Ubuntu中生成核心转储文件

这个问题在这里已经有了答案:

  • 如何在进程出现分段错误时在Linux中生成核心转储? 9个答案

  • 激活你的coredumps:

    ulimit -c unlimited
    

    另请检查:

    $ sysctl kernel.core_pattern
    

    查看您的转储的创建位置(%e将是进程名称,%t将是系统时间)。

    您可以在/etc/sysctl.conf中更改它,然后通过sysctl -p重新加载。

    你可以测试它:

    sleep 10 &
    killall -SIGSEGV sleep
    

    如果核心转储成功,您将在分段故障指示后看到“(核心转储)”。

    也可以看看:

    如何在我的gcc C ++应用程序崩溃时生成堆栈跟踪


    Ubuntu的

    如果你有Ubuntu,你的转储是通过/var/crashapport创建的,但是格式不同(编辑文件以查看它)。

    请阅读更多:

    https://wiki.ubuntu.com/Apport


    OS X

    在OS X中,您的崩溃转储是由Crash Reporter以回溯的形式自动创建的。 您可以通过执行控制台并转至'用户诊断报告'部分(位于“诊断和使用信息”组下)或您可以在~/Library/Logs/DiagnosticReports找到这些崩溃文件。

    实际的核心文件是在/cores中生成的。

    阅读更多:如何在Mac OS X中生成核心转储?


    检查ulimit -c的输出,如果它输出0,这就是为什么你没有核心转储。

    使用

    ulimit -c unlimited

    以允许核心创建(也许可以通过实际大小限制来取代unlimited以更安全)。


    使用ulimit -c SIZE设置最大核心转储大小。

    链接地址: http://www.djcxy.com/p/86053.html

    上一篇: How to generate core dump file in Ubuntu

    下一篇: stack for exceptions in C++