【发布时间】:2012-01-12 14:13:26
【问题描述】:
我可以在 Linux 上配置进入核心转储的内容吗?我想获得类似 Windows mini-dumps 的东西(应用程序崩溃时有关堆栈帧的最少信息)。我知道您可以使用ulimit 为核心文件设置最大大小,但这不允许我控制核心内部的内容(即不能保证如果我将限制设置为 64kb,它将转储最后 16 个堆栈的页面,例如)。
另外,如果可能的话,我想以编程方式(从代码)设置它。
我查看了man core 提到的/proc/PID/coredump_filter 文件,但对于我的目的来说,它似乎过于粗略。
提供一点背景信息:我需要很小的核心文件,原因有很多:我需要通过网络为大量(数千)客户收集它们;此外,这些是带有少量 SD 卡的嵌入式设备,以及用于网络连接的 GPRS 调制解调器。所以任何超过 200k 的东西都是不可能的。
编辑:我正在开发一个运行 linux 2.6.24 的嵌入式设备。处理器是 PowerPC。不幸的是,powerpc-linux 目前在 breakpad 中不支持,所以 google breakpad 不是一个选项
【问题讨论】:
-
我不知道,答案可能在内核源代码中(因为没有相关的规范)。你为什么要问?对于当前的磁盘,64Mb 的核心转储限制仍然很小,并且很可能包含足够的信息。为什么需要将限制设置为像 64kb 这样的微小值。 ?
-
Google Breakpad 在包括 Linux 在内的所有平台上写入 minidump。
-
我问是因为我使用的是嵌入式设备,它有一个小闪存盘,尤其是下载数据的 gprs 连接速度很慢。我希望它尽可能小!
-
我会看看 Breakpad.. 以前从未听说过!我希望它适用于我的架构(我应该提到,我会编辑问题)
-
很遗憾 google breakpad 不支持 powerpc-linux!