引入:

Q:如果一个程序运行3天后才会出错,这个时候难道需要我们一直用GDB调试程序3天吗?

A:答案当然是否定的。

我们有更厉害的工具——Core dump

一、Coredump定义

Core Dump又叫核心转存。当程序在运行过程中发生异常, 这时Linux系统可以把程

序出错时的内存内容存储在一个core文件中, 这种过程叫Core Dump。

二、Segment Fault

Core Dump主要用来对付什么样的错误呢?

——Segment fault

Linux应用程序在运行过程中,经常会遇到Segment fault(段错误) 这样的错误。产生这样错

误的原因通常有:

  • 数组访问越界
  • 访问空指针
  • 栈溢出
  • 修改只读内存

三、Core Dump使能

在Linux系统中,默认是关闭core dump功能

的,但是可以通过来ulimit命令打开/关闭core dump功能。

打开:ulimit -c unlimited
关闭:ulimit -c 0(零)

四、Core文件分析

发生core dump之后, 可以使用gdb进行查看core文件的内容, 以定位程序出错的位置.

用法:

	gdb 程序名 core 文件名

	gdb ./test core.12551

注意!!!:程序带有符号信息

——编译时需要带有 -g 否则调试时造成困难

定位出错位置

【Linux】Core dump故障分析的更多相关文章

  1. 【转】 Linux Core Dump 介绍

    ===============================================================  Linux core dump的祥细介绍和使用 =========== ...

  2. Linux core dump file详解

    Linux core dump file详解 http://www.cnblogs.com/langqi250/archive/2013/03/05/2944931.html

  3. Linux Core Dump

    当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成“核心转储”).我们可以认为 core dump 是“内存快 ...

  4. linux core dump 文件 gdb分析

    core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump. (linux中如果内存越界会收到SIG ...

  5. Segment fault及LINUX core dump详解 (zz)

    C 程序在进行中发生segment fault(core dump)错误,通常与内存操作不当有关,主要有以下几种情况: (1)数组越界. (2)修改了只读内存. (3)scanf("%d&q ...

  6. Segment fault及LINUX core dump详解

    源自:http://andyniu.iteye.com/blog/1965571 core dump的概念: A core dump is the recorded state of the work ...

  7. linux core dump学习

    1. core dump是什么? core dump又叫核心转储,当操作系统收到特定的signal时, 会生成某个进程的core dump文件.这样程序员可以根据 已经生成的core dump文件来d ...

  8. Linux Core Dump【转】

    转自:http://www.cnblogs.com/hazir/p/linxu_core_dump.html 当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中 ...

  9. 6、core dump 故障分析

    Core Dump-定义Core Dump又叫核心转存.当程序在运行过程中发生异常, 这时Linux系统可以把程序出错时的内存内容存储在一个core文件中, 这种过程叫Core Dump. Segme ...

随机推荐

  1. ajax beforeSend中无效果

    asnyc:false 与beforesend 同时使用 无效果

  2. 启动Tomcat报错

    如果发现引入jar包有问题时,看jar包是否损坏,变成了0kb.如果是这样,在网上试尽解决办法也是有问题的. 一般Tomcat启动报错,要引入这两个jar包.

  3. ubuntu下安装和更新R语言

    R官网更新说明 https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/linux/ubuntu/README.html 本文主要讲解在ubuntu下如何安装和更新 ...

  4. [USACO18FEB]Taming the Herd

    Luogu4267 题解 对于\(dp[i][j]\) , 预处理出一些转移一步的次数 , 然后可以很方便的转移 : \(dp[i][j]=min(dp[k][j-1]+cnt[j][i])\)

  5. C# 关于Grid下动态删除行列的操作

    假设我们有以下布局 <Grid x:Name="Grid" ShowGridLines="True"> <Grid.RowDefinition ...

  6. HDU - 6183 动态开点线段树 || 令人绝望的线段树

    一看C才[0,50],肯定要开51棵线段树维护y区间的最小x值啦 是男人就上51棵..等等空间爆几倍了 动态开点!51棵线段树用全局节点变量控制,有点像主席树 清空工作很简单,把51个树根清掉然后回收 ...

  7. 面向对象中的@classonlymethod 与 @classmethod的区别

    如果要使用classonlymethod ,则需要先定义好一个classonlymethod 类. 首先我们需要明白无论是classonlymethod还是classmethod,本质都是一个类,而c ...

  8. 微信小程序 template模板使用

    参考文章: 微信小程序-template模板使用

  9. hdu-1702-栈和队列

    ACboy needs your help again! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

  10. PIE SDK热力图

      1.算法功能简介 热力图,也就热图或者热点图,它能以特殊高亮的的形式显示某一区域的等级的优越性.重要性或者某一区域类别的密度和变换趋势:例如百度地图热力图 是用不同颜色的区块叠加在地图上实时描述人 ...