core文件
core文件也叫核心转储文件,是程序在运行过程中出现段错误退出时,用于保存让gdb调试的堆栈错误信息的文件
某些Linux系统下默认是没有设置core文件的,需要我们查看一下;
如果查看到core为0字节的话,就说明系统没有设置,那么我们要在使用之前进行设置,假设我们设置为1024字节
ulimit -c -c表示的就是core文件
ulimit -c 1024 将core的文件大小设为1024字节 unlimited就是无限大
当出现段错误的时候,我们的程序执行路径下就会生成一个core文件,然后可以
gdb -c core 二进制执行程序
gdb -c core test test为我们编译时生成的debug版本的可执行文件
举个栗子:
加载到gdb解析:
造成段错误的原因
- 数组访问越界
- 对野指针进行操作
- 修改只读块数据
- 栈溢出