Linux Core文件在系统排障中的应用
作者:Linux公社 发布时间:[ 2016/12/2 15:01:07 ] 推荐标签:操作系统 Linux
1. 什么是Core dump 文件?
Core Dump 又叫核心转储。在程序运行过程中发生异常时,将其内存数据保存到文件中,这个过程叫做 Core Dump。
在开发过程中,难免会遇到程序运行过程中异常退出的情况,这时候想要定位哪里出了问题,仅仅依靠程序自身的信息打印(日志记录)往往是不够的,这个时候需要 Core Dump 文件来帮忙了。
一个完整的 Core Dump 文件实际上相当于恢复了异常现场,利用 Core Dump 文件,可以查看到程序异常时的所有信息,变量值、栈信息、内存数据,程序异常时的运行位置(甚至记录代码行号)等等,定位所需要的一切信息都可以从 Core Dump文件获取到,能够非常有效的提高定位效率。
2. 如何查看Core文件?
Core文件默认是不开启的,运行 ulimit -c 命令,如果返回的结果为0,说明Core文件的指定大小为0,即没有开启Core文件。可以通过设置
ulimit -c filesize 指定Core生成文件的大小,单位为KBytes. 也可以设置 ulimit -c ulimited 不限制Core文件的大小。
3. Core Dump 文件名设置
Core Dump 文件默认的名字为 core ,而且新的Core文件会把老的覆盖,这样我们只能看到后一次的 Core Dump 信息,可以通过设置Core文件名称模板,使每次生成的 Core Dump 文件区分开来。
Core Dump 文件的命名规则定义在 /proc/sys/kernel/core_pattern 文件中,规则中还可以加入预设的变量来更好的区分Core文件,支持的变量列表如下:
注:Core Dump 文件名的大长度为128字节(在 Linux 2.6.19 版本前,大长度为64字节)。
例如:可以通过下面的命令,生成文件名为 core-程序名称-进程ID-时间 的 Core Dump 文件:
echo "core-%e-%p-%t" > /proc/sys/kernel/core_pattern
从 Linux 2.4 版本开始,提供了一种比较原始的Core文件名设置方式,直接设置 /proc/sys/kernel/core_uses_pid 文件中的值为1,生成的Core文件名中便会自动加上 .PID 后缀,即生成的文件名为 core.PID 这种形式。执行下面的命令可以设置该值:
echo "1" > /proc/sys/kernel/core_uses_pid
4. 如何使用 Core Dump
有了 Core Dump 文件后,可以使用GDB来加载分析,执行如下命令(假设可执行程序名称及路径为 /home/hutaow/test_dump ,生成的Core文件名为 core ):
gdb /home/hutaow/test_dump -c core
加载完成后,即可以在GDB中查看程序异常时的各种运行信息了(查看变量值、线程信息、调用栈、反汇编等等)。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11