【linux】coredump、gdb调试崩溃的程序

1、什么是coredump?

当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中(core文件),这种行为就叫做 Core Dump 或者叫做 ‘核心转储’,利用 coredump 可以帮助我们快速定位程序崩溃位置。
coredump和Valgrind的区别

Valgrind作用性体现更多在于“内存泄露”的检查
coredump可以捕捉因为空指针、野指针的访问,会引发程序段错误(segment fault )

2、启动coredump

系统默认记录内核转储的文件(core文件)大小为0,即默认是关闭coredump功能的。如果要启动coredump功能,设置core文件的大小即可。例如,使用ulimit -a可以查看各种大小限制,其中core file size即为coredump的大小,单位为blocks,如下所示:

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d

猜你喜欢

转载自blog.csdn.net/u010168781/article/details/129746816