Linux:Core dump文件配置及分析

一、core dump文件说明及作用

core dump(核心转储),一般是操作系统在进程收到某种信号而终止运行时,将进程地址空间的内容及有关进程状态的其它信息写出的一个磁盘文件。

        主要内容包含了程序内存中运行的堆栈信息,例如函数的调用情况等。

        主要作用用于调试,分析程序崩溃原因。


二、core dump文件配置生成

     Linux中 core dump文件生成一般处于关闭状态,可通过shell命令“ulimit  -a”查看具体情况,其中core file size表示core dump文件大小,当大小为0时,表示不生成

       可通过以下两种方法打开core dump文件生成:

      1)通过shell命令设置,让core dump文件大小不受限制(暂时):

         具体命令:“ulimit  -c   unlimited ”

        该方法只在输入该命令的终端中生效,其他环境中没有效果。可通过在命令终端中设置,然后再在该终端中运行程序,达到目的。

      2)通过修改配置文件,让core dump文件大小不受限制(永久):

修改 "/ect/security/limits.conf"文件,将soft core 以及 hard core的值改为 unlimited(或者足够大的值),如下:

##            

##........其他账户配置

##root的配置

@root                  soft         core        unlimited

@root                  hard        core       unlimited

......

设置完成后需重启机器,所有环境下生效。


三、core dump文件分析

      Linux平台常用的coredump文件分析工具是gdbWindows平台用userdump和windbg。

     这里以Linux平台为例,查看程序崩溃时堆栈调用信息命令为:gdb  执行程序路径  coredump文件路径,如gdb  ./test  core.2324

     (如果不知道执行程序路径,可直接输入gdb coredump文件路径,终端中会提示缺少的执行程序名称)

      Linux:Core dump文件配置及分析_第1张图片

     获取崩溃处堆栈信息后,可通过“bt”命令,查看具体的库及函数调用

      Linux:Core dump文件配置及分析_第2张图片


你可能感兴趣的:(linux,dump)