zoukankan      html  css  js  c++  java
  • (八)core文件详解

    项目线上频繁的产生core文件,运维同事都有意见了,刚开始以为设置ulimit -c 0就可以了,但是ulimit只对当前会话有效,且这并不能真正解决程序崩溃的问题。

    对于linux后台开发,经常会与core文件打交道。为了能够更好的分析其中的原理,就查阅一些资料来对core文件进行深入的学习。

    参考:

    1. coredump文件

    core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工作当前状态存储生成第一个文件,许多的程序出错的时候都会产生一个core文件,通过工具分析这个文件,我们可以定位到程序异常退出的时候对应的堆栈调用等信息,找出问题所在并进行及时解决。

    core dump 对于编程人员诊断和调试程序是非常有帮助的,有些程序错误是很难重现的,例如指针异常,而 core dump 文件可以再现程序出错时的情景.

    [root@localhost]# cat  /proc/sys/kernel/core_pattern
    core
    

    /proc/sys/kernel/core_pattern文件, 用于控制Core文件的文件名. 默认情况下,只有一行:“core”.也支持定制,使用%配合不同的字符:

    • %p Core进程的PID
    • %u Core进程的UID
    • %s 造成Core的signal号
    • %t Core的时间,从1970-01-0100:00:00开始的秒数
    • %e Core进程对应的可执行文件名

    2. linux命令

    ulimit –c命令,可以查看和设置当前OS对于Core文件大小的限制

    ld@ld-pc:~/workspace/cpp/net$ ulimit -c
    0
    ld@ld-pc:~/workspace/cpp/net$ ulimit -c unlimited
    ld@ld-pc:~/workspace/cpp/net$ ulimit -c
    unlimited
    ld@ld-pc:~/workspace/cpp/net$ ulimit -c 1000
    ld@ld-pc:~/workspace/cpp/net$ ulimit -c
    1000
    

    3. limit

    cat /etc/security/limits.conf
    
    #*               soft    core            0
    
    

    4. getrlimit/setrlimit函数设置core dump

    程序中开启core dump,可以通过函数查看和设置RLIMIT_CORE

    3. kill

  • 相关阅读:
    IOS-UI基础-图片浏览器
    IOS-UI基础-UIImageView帧动画
    IOS-UI-transform
    IOS-UI基础-按钮扩展
    IOS-UI基础-UIView和UIViewController
    IOS-UI基础-按钮
    OC-关于COPY关键字
    OC-NSNumber与NSValue
    OC-NSFileManager创建目录
    2019规划目标
  • 原文地址:https://www.cnblogs.com/walkinginthesun/p/9319461.html
Copyright © 2011-2022 走看看