关于使用core文件进行故障定位分析
一.概述
1.简介
core是unix系统的内核。当程序出现内存越界的时候,操作系统会中止进程,并将当前内存状态倒出到core文件中,以便进一步分析。
linux系统下执行代码,不能正常运行,程序会core,或者直接离开,不会core。bug和操作系统或硬件的保护机制都会导致程序异常终止,操作系统会kill掉这些进程并产生core文件。通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,它记录了程序挂掉时详细的状态描述,程序员可以通过core文件来找出问题所在。
2.core dump
开发和使用 Unix程序时, 有时程序莫名其妙的down了, 却没有任何的提示(有时候会提示core dumped)。这时候可以查看有没有形如core.进程号的文件生成, 这个文件便是操作系统把程序down掉时的内存内容扔出来生成的, 它可以做为调试程序的参考。
core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump。
3.参数详解
%p - insert pid into filename 添加pid
%u - insert current uid into filename 添加当前uid
%g - insert current gid into filename 添加当前gid
%s - insert signal that caused the coredump into the filename 添加导致产生core的信号
%t - insert UNIX time that the coredump occurred into filename 添加core文件生成时的unix时间
%h - inse