ulimit -c
可用于设置 RLIMIT_CORE
,并限制进程可能生成的核心转储的最大大小。任何较大的核心转储都将被截断为此大小。
这样一个截断的核心转储能做些什么有用的事情吗?也许在 Linux x86-64 以外的平台上,或者使用 GDB 以外的调试器?
如果不是,为什么 POSIX specify this behavior ,而不是说,如果超过 RLIMIT_CORE
,则将核心转储截断为零字节?
最佳答案
Can anything useful be done with such a truncated coredump?
是的,很多。
截断的核心转储通常包含堆栈段,因此命令 where
和 thread apply all where
通常会起作用。通常这就是核心所需要的全部。检查局部变量和全局变量的命令也可能会起作用。
检查堆分配变量的命令可能适用于某些变量,但不一定适用于其他变量。尽管如此,这总比没有好。
关于linux - 截断的核心转储有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8481326/