Core Dump(核心转储)是在Linux系统中,当程序发生异常终止时,操作系统将程序的内存状态保存到一个文件中的过程。这个文件通常被称为core
文件,包含了程序崩溃时的内存快照,可以用于后续的调试和分析。
在Linux系统中,默认情况下,coredump是关闭的。要打开coredump,需要进行以下配置:
/etc/security/limits.conf
文件,添加以下内容:/etc/security/limits.conf
文件,添加以下内容:/etc/sysctl.conf
文件,添加或修改以下内容:/etc/sysctl.conf
文件,添加或修改以下内容:kernel.core_pattern
配置正确,并且目标目录有写权限。ulimit -c
设置为unlimited
。/etc/security/limits.conf
和/etc/sysctl.conf
配置正确并生效。假设我们有一个简单的C程序test.c
,运行时会发生崩溃:
#include <stdio.h>
#include <stdlib.h>
int main() {
int* ptr = NULL;
*ptr = 1; // 这里会引发段错误
return 0;
}
编译并运行程序:
gcc -o test test.c
./test
如果coredump已经打开,程序崩溃后会生成一个core文件。可以使用gdb
进行调试:
gdb ./test /path/to/core
(gdb) bt
通过以上步骤和配置,你可以在Linux系统中成功打开和使用coredump进行调试和分析。
领取专属 10元无门槛券
手把手带您无忧上云