core dump:(内存快照)在linux中当程序发生异常中止或者崩溃时,操作系统会将程序当时的内存状况记录下来,存放到一个文件中,这中行为就叫core dump.core dump不仅保存了程序当时的内存状况,还有关键的程序运行的状态 ,寄存器信息(包括程序指针、栈指针等)、内存管理信息、其他处理器和操作系统状态和信息。

core dump产生的时机:

Linux 中信号是一种异步事件处理的机制,每种信号对应有其默认的操作。默认操作主要包括忽略该信号(Ingore)、暂停进程(Stop)、终止进程(Terminate)、终止并发生core dump(core)等。如果我们信号均是采用默认操作,那么,以下列出几种信号,它们在发生时会产生 core dump:

当然不仅限于上面的几种信号。这就是为什么我们使用 Ctrl+z 来挂起一个进程或者 Ctrl+C 结束一个进程均不会产生 core dump,因为前者会向进程发出 SIGTSTP 信号,该信号的默认操作为暂停进程(Stop Process);后者会向进程发出SIGINT 信号,该信号默认操作为终止进程(Terminate Process)。同样上面提到的 kill -9 命令会发出 SIGKILL 命令,该命令默认为终止进程。而如果我们使用 Ctrl+\ 来终止一个进程,会向进程发出 SIGQUIT 信号,默认是会产生 core dump 的。还有其它情景会产生 core dump, 如:程序调用 abort() 函数、访存错误、非法指令等等

怎么查看是否开启core dump: ulimit -c 返回0 代表没开启 返回unlimited代表开启了

怎么打开core dump:

一种方法是:ulimit -c unlimited

但是这种方法是暂时的,你每打开一次终端都要输一次

另一种方法是:修改/etc/bash.bashrc文件 ,向里面加入一句话

ulimit -c unlimited

然后执行 source /etc/bash.bashrc  就行了修改 core 文件保存的路径

默认生成的 core 文件保存在可执行文件所在的目录下,文件名就为core。

通过修改/proc/sys/kernel/core_uses_pid文件可以让生成 core 文件名是否自动加上 pid  号。

例如echo 1 > /proc/sys/kernel/core_uses_pid,生成的 core 文件名将会变成core.pid,其中 pid 表示该进程的 PID 。

还可以通过修改/proc/sys/kernel/core_pattern来控制生成 core 文件保存的位置以及文件名格式。

例如可以用echo "/tmp/corefile-%e-%p-%t" > /proc/sys/kernel/core_pattern设置生成的 core 文件保存在 “/tmp/corefile” 目录下,文件名格式为 “core-命令名-pid-时间戳”。

%c 转储文件的大小上限

%e 所dump的文件名

%g 所dump的进程的实际组ID

%h 主机名%p 所dump的进程PID

%s 导致本次coredump的信号

%t 转储时刻(由1970年1月1日起计的秒数)

%u 所dump进程的实际用户ID

http://www.cnblogs.com/hazir/p/linxu_core_dump.htm

http://blog.csdn.net/u013010310/article/details/50578691

https://www.cnblogs.com/Anker/p/6079580.html

linux 进程内存 dump,linux core dump相关推荐

  1. linux 进程内存排行,linux下获取占用CPU/内存资源最多的10个进程[转自亿唐网]

    inux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux下获取占用内 ...

  2. linux 进程内存 limit,Linux 中的Soft limit 和Hard limit

    #Soft limit 和 Hard limit# 在Linux的系统中对于进程(Process)会有一些限制,这就所谓的limit,在实际应用中最常见的就是对打开文件(Open Files)的限制, ...

  3. linux 进程内存开销,linux下查看最消耗CPU、内存的进程

    1.CPU占用最多的前10个进程: ps auxw|head -1;ps auxw|sort -rn -k3|head -10 2.内存消耗最多的前10个进程 ps auxw|head -1;ps a ...

  4. linux 进程内存分布,linux C++ 的内存分布情况

    写了一段代码,验证了一下内存的分布情况: #include using namespace std; int k = 300; static int global_static = 0; const ...

  5. Linux 进程内存布局(一)

    Linux 进程内存布局 内存管理是操作系统的核心分部,对于程序员和系统管理员来说都非常重要. 这篇文章中我将以介绍一个运行在x86架构的32位Linux 操作系统上进程为例,介绍进程在执行的时候的内 ...

  6. linux进程管理机制,linux进程管理,linux进程管理机制

    linux进程管理,linux进程管理机制 一.基本介绍 1.在 LINUX 中,每个执行的程序(代码)都称为一个进程.每一个进程都分配一个 ID 号 2.每一个进程,都会对应一个父进程,而这个父进程 ...

  7. linux 进程内存分析工具,Linux内存使用情况以及内存泄露分析之工具与方法

    1. 内存使用情况分析 1.1 系统总内存分析 通过cat /proc/meminfo,可用的物理内存=MemFree+Buffers+Cached. MemTotal:        5933132 ...

  8. 转 linux进程内存到底怎么看 剖析top命令显示的VIRT RES SHR值

    引 言: top命令作为Linux下最常用的性能分析工具之一,可以监控.收集进程的CPU.IO.内存使用情况.比如我们可以通过top命令获得一个进程使用了多少虚拟内存(VIRT).物理内存(RES). ...

  9. 查看LINUX进程内存占用情况 top pmap ps

    可以直接使用top命令后,查看%MEM的内容.可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令: (1)top top命令是Linux下常用的性能分析 ...

最新文章

  1. android vlc 参数,【VLC-Android】LibVLC API简介(至关于VLC的MediaPlayer)
  2. Hadoop核心机制详细解析
  3. Hexo搭建个人网站
  4. 为什么 Redis 默认 16 个库?90% 以上程序员不知道!
  5. 【设计模式】开闭原则
  6. 项目托管到GitHub及简单使用
  7. PyCharm 2020.1 稳定版发布
  8. JavaScript获取java变量值
  9. 关于直线、折线分割平面,平面的分割空间问题
  10. python保留字符串之外的_Python--字符串
  11. 理正深基坑弹性计算方法_理正深基坑整体计算与单元计算的区别
  12. java quartz 每月1号执行_Quartz 每月1号 执行规则表达式
  13. 像素字体 pixel font 入门
  14. 华为数字化转型的钻石模型
  15. Debian11 安装Chromium浏览器
  16. Struts2检测工具
  17. vue-element-ui-文件上传ts版
  18. 如何理解实时频谱分析仪的几个“带宽”参数(1)——实时带宽(RTBW)
  19. 守望者的逃离 动态规划+滚动数组
  20. linux ping等待时间,linux ping命令详解

热门文章

  1. 基于Springboot的小型超市商品展销系统 计算机毕设源码01635
  2. 今天,我把准备捐给灾区的200块给了一个发廊妹
  3. HS-COOLER KK10-BCV-423 L328冷却器
  4. 一个不当使用fclose引发的异常
  5. 编写ROS的第一个程序hello_world
  6. 《C++项目开发实战入门》攻坚战
  7. 用Gradle脚本管理Manifest文件
  8. spss三次指数平滑_为什么spss不能选择指数平滑法?
  9. 8位单片机(51 STC8)C语言处理32位unsigned long型数据之计算出错
  10. P(AB),P(A|B)