zoukankan      html  css  js  c++  java
  • coredump

    coredump介绍

    应用程序有时会因为异常或者bug导致在运行过程中异常退出或者终止,为了方便问题的定位,我们往往需要获取程序运行时的内存,寄存器状态,堆栈指针,内存管理以及函数调用堆栈信息等,从而找到bug所在。在linux系统中,我们通常可以通过对系统进行一些配置,将上述的信息输出到ELF文件中,即core文件

    coredump详细介绍

    core文件默认存储位置与对应的可执行程序位于同一路径下,文件名为core;具体信息可以通过如下命令查看:

    cat /proc/sys/kernel/core_pattern

    如果程序中调用了chdir函数,则core文件生成在chdir指定路径下。另外,我们也可以通过相关设置设定core文件生成路径。

    在类unix系统中,core文件本身的主要格式也是ELF格式,因此可以使用readelf或者file命令查看core文件的具体信息。

    coredump基本配置

    调试coredump文件需要读取相应符号信息,因此,编译时需要加入-g选项。

    系统资源限制,默认情况下,core文件大小限制为0,不会生成core文件,需要进行设置。命令如下:

    ulimit -c unlimited  (coredump文件大小不受限制)

    进程资源限制,有时即使系统设置了unlimited,但是当前进程启动时如果没有读取到,则仍然不会生成core文件。进程限制内容查看命令:

    egrep "Units|core" /proc/<pid>/limits

    使core文件添加pid信息

    echo "1" > /proc/sys/kernel/core_uses_pid

    配置core文件位置和文件名格式

    echo "./core.%p.%e" > /proc/sys/kernel/core_pattern

    生成的core文件与执行程序位于相同路径,文件名为core.pid.execute_name

    其他控制参数:

    %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 - insert hostname where the coredump happened into filename 添加主机名

    %e - insert coredumping executable name into filename 添加命令名

    检查core目录,core文件生成路径所在磁盘空间是否为0,或者小于进程运行时所占的虚拟内存大小(通过top命令查看VIRT

    检查core目录是否有写权限

    如果core文件没有core全,检查进程如下配置

    cat /proc/<pid>/coredump_filter

    00000003

    echo "0xF" > /proc/<pid>/coredump_filter

    原理如下:

    (bit 0) anonymous private memory

    (bit 1) anonymous shared memory

    (bit 2) file-backed privated memory

    (bit 3) file-backed shared memory

    如果发现core文件不知道属于哪个进程,执行如下命令:

    strings core.6440 | head

    参考资料

    详解coredump

  • 相关阅读:
    css3-8 内外边距中的注意要点有哪些
    php实现 统计输入中各种字符的个数
    Java设计模式偷跑系列(十八)建模和责任链模式的实现
    Delphi 3D Glscene安装
    五通信算法:五种编码增益比较matlab模拟
    OpenGL于MFC使用汇总(三)——离屏渲染
    设计模式--模板方法 And State模式
    EXCEL 两人的建立Y轴
    LeetCode Median of Two Sorted Arrays
    wordpress常见的问题
  • 原文地址:https://www.cnblogs.com/zhouLee/p/4733642.html
Copyright © 2011-2022 走看看