2

我想在运行 Linux 的嵌入式系统上为我的大型 C 应用程序生成核心转储文件。如果我设置

 ulimit -c unlimited

我得到大约 100Mb 的大转储文件。这对我来说太多了,因为如果我的应用程序崩溃并且核心没有完全生成,我的系统就会重新启动。此外,它更难以操作(压缩或压缩)。

我认为我不需要整个内存转储,我只想看看当我有一个时我的崩溃在哪里。所以我只需要堆栈和我猜的堆......

如果我设置

ulimit -c 1024

我会丢失什么数据?

在 core(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. 

也许那里有优化?

谢谢!

4

0 回答 0