【问题标题】:Generating Mini Text Dump LInux生成迷你文本转储 LINux
【发布时间】:2011-09-19 11:37:14
【问题描述】:

以下问题描述为 windows How to create minidump for my process when it crashes?

但是如何在 linux 上创建迷你崩溃文本转储?

【问题讨论】:

    标签: c++ linux


    【解决方案1】:

    您需要编写一个信号处理程序。

    这里有一个幻灯片演示如何做到这一点:

    http://www.scribd.com/doc/3726406/Crash-N-Burn-Writing-Linux-application-fault-handlers

    这是幻灯片中的代码:

    https://github.com/gby/libcrash

    【讨论】:

      【解决方案2】:

      我不确定您是否可以获得与 .NET MiniDump 完全相同的内容 - 但您将能够在 Linux 上生成核心转储,该转储应该获得您所需要的信息。确保通过发出如下命令启用核心文件:

      ulimit -c unlimited
      

      这也会将核心转储的最大大小设置为unlimited - 您可以根据自己的意愿对其进行调整,以实现您问题的“迷你”方面。 man ulimit 是你这里的朋友。

      然后,运行您的进程并在它运行时将其杀死。我通常发送的信号是SIG_ABRT(信号6),如下:

      kill -6 <pid>
      

      如果您不知道 pid 是什么,或者如何获取 pid,您可能需要在 Linux 上阅读更多内容。

      【讨论】:

      • 确保您的代码是使用-g 标志(调试符号)编译的,这样您就可以理解核心转储。您还可以使用信号名称(不带SIG 前缀)来代替kill,这样您就不必记住数字:kill -ABRT &lt;pid&gt;
      • 感谢您的补充,迈克!
      • 我已经在生成核心转储,但我想生成一个小的可读文本转储
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-24
      • 1970-01-01
      • 2016-07-18
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多