博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(八)core文件详解
阅读量:4659 次
发布时间:2019-06-09

本文共 1135 字,大约阅读时间需要 3 分钟。

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

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

参考:

1. coredump文件

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

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

[root@localhost]# cat  /proc/sys/kernel/core_patterncore

/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 -c0ld@ld-pc:~/workspace/cpp/net$ ulimit -c unlimitedld@ld-pc:~/workspace/cpp/net$ ulimit -cunlimitedld@ld-pc:~/workspace/cpp/net$ ulimit -c 1000ld@ld-pc:~/workspace/cpp/net$ ulimit -c1000

3. limit

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

4. getrlimit/setrlimit函数设置core dump

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

3. kill

转载于:https://www.cnblogs.com/walkinginthesun/p/9319461.html

你可能感兴趣的文章
plsql下载安装
查看>>
CSS3 Background-origin
查看>>
laravel新增路由文件
查看>>
知识管理系统Data Solution研发日记之二 应用程序系列
查看>>
10 methods make you positive.
查看>>
poj 2823 Sliding Windows (单调队列+输入输出挂)
查看>>
java第十周学习总结
查看>>
class类文件结构——方法表集合
查看>>
不明觉厉 格雷码
查看>>
【转】android JNI
查看>>
VS2008如何自动添加消息映射
查看>>
变量内存分配
查看>>
C语言:C语言中的整数自动转换原则(转)
查看>>
.NET生成CSV文件
查看>>
Android环境的构建
查看>>
处理海量数据的经验和技巧
查看>>
启动tomcat报错java.net.bindexception: address already in use: jvm_bind
查看>>
SQLSERVER存储过程查找所有数据表中某列存在空值
查看>>
shell--脚本控制
查看>>
[转载]23中设计模式全解析
查看>>