减少linux

时间:2015-05-06 15:36:14

标签: c++ linux core mint

减少核心转储大小的最佳方法是什么?

我的问题是我的Linux Mint上没有专门用于此目的的空间。我有大约200 MB,这远远不足以让我的程序生成一个像样的转储。我已经尝试配置coredump过滤器,但只有匿名私有映射转储在大小上做了任何重大改变,但它也使我的转储不可读。我还试图用ulimit限制大小,但唯一的结果是每次都会截断转储。

我的问题是控制核心转储大小的最佳方法是什么? 有没有办法只保留转储的前10-15帧?如果只生成无用的核心文件,那么使用ulimit设置大小限制的用途是什么?

2 个答案:

答案 0 :(得分:2)

考虑使用Breakpad:https://code.google.com/p/google-breakpad/ https://code.google.com/p/google-breakpad/wiki/GettingStartedWithBreakpad

  

Breakpad是一个库和工具套件,允许您分发   使用编译器提供的调试信息向用户应用程序   删除,记录紧凑的“minidump”文件中的崩溃,将它们发回   您的服务器,并从这些小型转储产生C和C ++堆栈跟踪。   Breakpad也可以根据请求编写minidumps   没有坠毁。

答案 1 :(得分:0)

StackOverflow上似乎有几个相关的答案:

Minimal core dump (stack trace + current frame only)

此链接建议为SIGSEGV设置信号处理程序并以您自己的方式转储核心。

Linux core dumps are too large!

此链接建议使用setrlimit来限制转储的大小。