我的公司正在利用 Linux(特别是 CentOS)中的 coredump 功能来追踪一些难以发现的问题。不幸的是,我们有一堆小型虚拟机在有限的 HD 空间下运行,并且由于堆占用的大量空间,完整的核心转储会导致问题。
当发生分段错误时,是否可以让 Linux 转储调用堆栈、线程和局部变量?我尝试仅将转储限制为 50 兆,但似乎并非所有所需的细节都在前 50 兆字节中(ulimit -c 51200)。我们可以像那样截断堆,但我无法找出什么大小会起作用。
我知道可以在需要时用一些额外的代码写出你自己的调用堆栈,但我们正处于结束的地步,对于我们遇到的最后几个问题来说,这将是一个很难卖的东西。