core文件的调试

core文件的调试

1、什么是core文件?

Core dump 文件是指在程序崩溃或异常结束时,操作系统将程序的内存信息、寄存器状态、堆栈信息等保存到文件中以便进行调试和分析的文件。

内存信息:分为栈内存(Stack Memory)和堆内存(Heap Memory)

寄存器状态:常见的寄存器包括程序计数器(PC)、堆栈指针(SP)、基址寄存器(Base Pointer)、索引寄存器

堆栈信息:堆栈信息特指栈内存的使用情况,包括局部变量、函数调用的参数、返回地址等

2、core文件怎么产生的?

1° 程序发生段错误:

① 访问空指针或者野指针; ② 访问系统保护的内存地址(内核空间地址);③访问只读内存地址;④ 栈溢出(函数无限循环递归);⑤数组越界;⑥ 除零操作;⑦ 访问已经释放的指针;

2° 命令 ulimit -c unlimited,将 core dump 文件的大小限制设置为无限制;

3° core文件生成位置默认为当前工作目录;

3、core文件如何调试?

1° 通过命令gdb ./a.out core.xxxx 进入core文件的gdb;(通过gdb -c core.xxx 进入gdb的话,还需要在gdb中输入file ./a.out 读取符号信息,否则bt显示双问号??)

2° 查看程序崩溃时的堆栈信息:

(gdb) bt

查看程序崩溃时的变量值:

(gdb) p

查看程序崩溃时的寄存器状态:

(gdb) info registers

查看程序崩溃时的汇编代码:

(gdb) disassemble

linux:core文件的产生和调试 - 简书 (jianshu.com)

Linux 中 core dump 文件的作用和使用方法-阿里云开发者社区 (aliyun.com)

段错误详解 - boldness2012 - 博客园 (cnblogs.com)

相关推荐

少侠快来拿狼吧!《天涯明月刀》赛季制帮派联赛玩法一览
聚享游游戏试玩攻略详解
beat365手机中文官方网站

聚享游游戏试玩攻略详解

01-29 2734
在Windows 10中打开或关闭后台应用程序-雨后清风教程