我可以配置进入Linux核心转储的内容吗?我想获得像Windows迷你转储(应用程序崩溃时有关栈帧的最少信息)之类的内容。我知道你可以使用ulimit
来设置核心文件的最大尺寸,但是这不允许我控制核心内部的内容(即,不能保证如果将限制设置为64kb,它将转储最后16页的例如堆栈)。最小核心转储(堆栈跟踪+仅当前帧)
另外,如果可能的话,我想以编程方式(从代码)设置它。 我看过man core
提到的/proc/PID/coredump_filter
文件,但它对我的目的来说似乎过于粗糙。为了提供一个小背景:我需要小型核心文件,原因有很多:我需要通过网络为大量(数千)客户端收集它们;此外,这些是带有少量SD卡的嵌入式设备,以及用于网络连接的GPRS调制解调器。因此,大于200k的任何事情都不成问题。
编辑:我正在运行Linux 2.6.24的嵌入式设备上工作。处理器是PowerPC。不幸的是,PowerPC的Linux是目前在breakpad不支持,因此谷歌breakpad是不是一种选择
我不知道,答案可能在于内核源代码(因为没有与此相关的规范)。你为什么要问?对于当前的磁盘,64Mb核心转储限制仍然很小,并且很可能包含足够的信息。为什么你需要将极限设置为64kb这样的小数值。 ? – 2012-01-12 14:18:56
Google Breakpad在包括Linux在内的所有平台上编写小型转储程序。 – 2012-01-12 14:38:39
我问,因为我正在使用一个嵌入式设备,它有一个小的闪存盘,尤其是一个缓慢的gprs连接来下载数据..我希望它尽可能小! – 2012-01-12 15:02:06