zoukankan      html  css  js  c++  java
  • 进程异常退出core文件

    如果在生产环境下已经是chdir("/")的情况下,如何产生core文件

    a)首先确定ulimit 的设置
          ulimit -a          -->查看当前的ulimit限制;
          ulimit -c 1024000  -->设置core file size大小,缺省为0即不让生成core文件
        b)针对不同的操作系统,core文件生成的文件名及位置是可设置的;
        -----------
        Linux
        -----------  
        修改:/proc/sys/kernel/core_pattern
        例如:
          echo "/tmp/core-%e-%p" >/proc/sys/kernel/core_pattern
          其中 %e:进程名, %p:进程号, 也可增加其它,具体参考 man core

        -----------
        AIX
        -----------  
        通过 chcore 命令修改
        例如:
          lscore                 -->查看当前core规则
          chcore -p on        -->与-l配套使用
          chcore -n on        -->core文件中上加进程号及时间
          chcore -l "/tmp"    -->指定生成的/tmp下去

        ==>以上设置后,就算chdir("/"), 在异常退出的情况下也会生成core文件;
        core文件分析方式:
        linux: gdb <bin> <core>
        aix:   file core* dbx <bin> <core>
        >where                  -->最常用的命令,core在哪了?显示当时的函数堆栈列表


        注:
           where 有时会查不到故障定位,报错,why?
           可能的原因:
           1)生成的core文件很大,如20M,ulimit -c 限制为10M,这样的话,core文件被截短了,有些内容看不到了;
           2)函数堆栈列表也是进程空间内的数据,如果指针越界的话,可能会将该数据区的数据搞乱了;

  • 相关阅读:
    cgroup开机自启动
    QPS
    Linux shell脚本的字符串截取
    设计模式 java
    kafka基本介绍
    Vagrant安装配置
    SuperMap空间数据处理与制图操作短视频汇总
    SuperMap 三维产品资料一览表
    SuperMap GIS资料-----云与Web端技术资料集锦
    世界地图和主要国家的 JSON 文件
  • 原文地址:https://www.cnblogs.com/qingxia/p/2699543.html
Copyright © 2011-2022 走看看