1 什么是 Core Dump
Core Dump 又叫核心转储。在程序运行过程中发生异常时,将其内存数据保存到文件中,这个过程叫做 Core Dump。
2 Core Dump 的作用
在开发过程中,难免会遇到程序运行过程中异常退出的情况,这时候想要定位哪里出了问题,仅仅依靠程序自身的信息打印(日志记录)往往是不够的,这个时候就需要 Core Dump 文件来帮忙了。
一个完整的 Core Dump 文件实际上相当于恢复了异常现场,利用 Core Dump 文件,可以查看到程序异常时的所有信息,变量值、栈信息、内存数据,程序异常时的运行位置(甚至记录代码行号)等等,定位所需要的一切信息都可以从 Core Dump文件获取到,能够非常有效的提高定位效率。
3 如何生成 Core Dump
3.1 Core Dump 文件生成开关
Core Dump 文件的生成是由Core文件大小限制,Linux中默认的Core文件大小设置为零,也就是不生成 Core Dump 文件,可以使用ulimit -c命令来查看当前的Core文件大小限制。
要生成 Core Dump 文件,只需要执行下面的命令设置Core文件的大小即可(其中filesize参数的单位为KByte):
变量 | |
---|---|
%% | % 字符 |
%p | 进程ID(PID) |
%u | 用户ID(UID) |
%g | 用户组ID |
%s | 触发 Core Dump 的信号 |
%t | 触发 Core Dump 的时间(单位为秒,从 1970-01-01 00:00:00 开始计算) |
%h | 主机名称(主机名可以通过uname 命令来查看) |
%e | 程序名称(无路径信息) |
%E | 程序的路径名称(路径中的/ 会被! 替代) |
%c | Core文件的限制大小值(Linux 2.6.24版本后开始支持) |
4 如何使用 Core Dump
有了 Core Dump 文件后,可以使用GDB来加载分析,执行如下命令(假设可执行程序名称及路径为/home/hutaow/test_dump,生成的Core文件名为core):
新闻热点
疑难解答