一、core文件介绍以及用途:
1、core文件是什么?
core文件包含了程序运行时的内存状态、寄存器状态、堆栈指针、内存管理信息以及各个函数使用堆栈信息等等;
当程序运行过程中出现段错误(Segmentation Fault),程序将停止运行,由操作系统把程序当前的内存状况存储在一个 core 文件中,即核心转储文件(Coredump File),core 文件是程序运行状态的内存映象。
2、使用场景,段错误
使用程序的时候,总会遇到
“段错误(核心已转储)”
这样的错误提示信息,通过gdb与core文件便可以查看程序错误的地方。
3、造成段错误的原因
主要以下几个方面
内存访问越界
多线程使用了线程不安全的函数
非法指针
堆栈溢出
多线程读写的程序没有加锁保护
二、core文件调试举例
1、举例一个用了空指针的程序
这里我们故意使用一个空指针,然后造成段错误,去演示如何使用core文件调试程序
#include <iostream>
int main()
{
*(char *)