本文共 1003 字,大约阅读时间需要 3 分钟。
core dump又称为核心转储,是指在程序运行过程中发生异常时,操作系统将程序当前内存状况存储到一个core文件中的过程。当程序因段错误(Segment fault)或其他异常退出时,由内核发送SIGSEGV信号,从而触发core dump。这类错误通常与指针操作相关,经常出现在数组越界、字符串操作不当以及多线程环境中的竞态条件等情境中。
内存访问越界
多线程环境中的线程不安全操作
非法指针使用
堆栈溢出
配置系统限制core dump
ulimit -c unlimited
可以临时开启,或者在.bashrc
中添加该命令使其生效。发生core dump后,可以使用gdb工具分析core文件以定位错误点。例如:
gcc -g test.c./a.out
在生成的core文件中,可以通过gdb进行分析:
gdb a.out core.1234
通常core文件会生成在当前工作目录下。如需自定义存储路径,可在/etc/sysctl.conf
中设置:
kernel.core_pattern = /var/core/%t-%e-%p-%c.core
转载地址:http://peldz.baihongyu.com/