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)函数堆栈列表也是进程空间内的数据,如果指针越界的话,可能会将该数据区的数据搞乱了;

  • 相关阅读:
    PHP 通过Socket收发16进制数据,数据包格式
    Form 提交表 单页面刷新不跳转
    查看网段内正在使用的IP以及ip定位 ——CMD批处理循环
    深入浅出讲解:php的socket通信
    PHP读取XML值的代码 解析
    大端模式和小端模式 网络字节顺序与主机字节顺序
    寒假day07
    寒假day06
    寒假day05-spring框架
    寒假day04
  • 原文地址:https://www.cnblogs.com/qingxia/p/2699543.html
Copyright © 2011-2022 走看看