我想在运行Linux的嵌入式系统上为我的大C应用程序生成核心转储文件。如果我设置
ulimit -c unlimited
我获得大约100Mb的大转储文件。这在我的情况下太多了,因为如果我的应用程序崩溃并且核心没有完全生成,我的系统会重新启动。而且,它更难以操纵(拉链等)。
我认为我不需要整个内存转储我只想知道当我有崩溃时崩溃的位置。所以我只需要堆栈和堆...
如果我设置
ulimit -c 1024
我将丢失哪些数据?
在核心(5)联机帮助页上,他们解释了我们如何设置掩码来选择要转储的数据:
bit 0 Dump anonymous private mappings.
bit 1 Dump anonymous shared mappings.
bit 2 Dump file-backed private mappings.
bit 3 Dump file-backed shared mappings.
bit 4 (since Linux 2.6.24)
Dump ELF headers.
bit 5 (since Linux 2.6.28)
Dump private huge pages.
bit 6 (since Linux 2.6.28)
Dump shared huge pages.
也许那里有优化?
谢谢!