ulimit -c
可用于设置RLIMIT_CORE
,并限制进程可能生成的coredump的最大大小。任何较大的coredump都会被截断为这个大小。
使用这样一个截断的coredump可以做些什么吗?也许在Linux x86-64以外的平台上,或者使用GDB以外的调试器?
如果没有,为什么POSIX specify this behavior,而不是说,如果超过RLIMIT_CORE
,则将coredump截断为零字节?
答案 0 :(得分:6)
使用这样一个截断的coredump可以做些什么吗?
是的,很多的东西。
截断的核心转储通常包含堆栈段,因此命令where
和thread apply all where
通常可以正常工作。通常这是核心所需要的。检查局部变量和全局变量的命令也可能有效。
检查堆分配变量的命令可能适用于某些变量,但不一定适用于其他变量。不过,这比更好。