【Linux】Core dump故障分析
引入:
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故障分析的更多相关文章
- 【转】 Linux Core Dump 介绍
=============================================================== Linux core dump的祥细介绍和使用 =========== ...
- Linux core dump file详解
Linux core dump file详解 http://www.cnblogs.com/langqi250/archive/2013/03/05/2944931.html
- Linux Core Dump
当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成“核心转储”).我们可以认为 core dump 是“内存快 ...
- linux core dump 文件 gdb分析
core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump. (linux中如果内存越界会收到SIG ...
- Segment fault及LINUX core dump详解 (zz)
C 程序在进行中发生segment fault(core dump)错误,通常与内存操作不当有关,主要有以下几种情况: (1)数组越界. (2)修改了只读内存. (3)scanf("%d&q ...
- Segment fault及LINUX core dump详解
源自:http://andyniu.iteye.com/blog/1965571 core dump的概念: A core dump is the recorded state of the work ...
- linux core dump学习
1. core dump是什么? core dump又叫核心转储,当操作系统收到特定的signal时, 会生成某个进程的core dump文件.这样程序员可以根据 已经生成的core dump文件来d ...
- Linux Core Dump【转】
转自:http://www.cnblogs.com/hazir/p/linxu_core_dump.html 当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中 ...
- 6、core dump 故障分析
Core Dump-定义Core Dump又叫核心转存.当程序在运行过程中发生异常, 这时Linux系统可以把程序出错时的内存内容存储在一个core文件中, 这种过程叫Core Dump. Segme ...
随机推荐
- python 获得毫秒级时间戳
import time import datetime t = time.time() print (t) #原始时间数据 print (int(t)) #秒级时间戳 print (int(round ...
- Olesya and Rodion (思维)
Olesya loves numbers consisting of n digits, and Rodion only likes numbers that are divisible by t. ...
- Codeforces - 38G 可持久化Treap 区间操作
题意:\(n\)个人排队,每个人有重要度\(p\)和不要脸度\(c\),如果第\(i\)个人的重要度大于第\(i-1\)个人的重要度,那么他们之间可以交换,不要脸度-1,交换后先前的第\(i\)个人也 ...
- UESTC - 1652 递推方程
方程很简单,每一公里往上推就行 WA了2发,忘了单通道时的特判,还有n m傻傻分不清,忘了fixed什么的我好弱啊QAQ.. #include<bits/stdc++.h> #define ...
- ACM 计算几何向量
向量 简介注意事项基本计算 加减法 ~ 示例代码 长度 ~ 示例代码 数乘 ~ 示例代码 点积 应用 ~ 示例代码 叉积 ~ 示例代码 性质与应用 经典题目 向量旋转 操作目的 模板代码 简介 向量, ...
- dedecmd 全局标签
dedecms全局标签 dedecms 标签使用手册 全局标签 adminname|责任编辑 arclist|文档列表 arclistsg|独立单表模型列表 ask|问答标签 ...
- [转] spring JdbcTemplate 查询,使用BeanPropertyRowMapper
[From] http://blog.csdn.net/limenghua9112/article/details/45096437 应用: 使用Spring的JdbcTemplate查询数据库,获取 ...
- HDU 2879 数论
HeHe Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Submis ...
- linux 运维基础之VM中安装centos6.X
VM中安装centos详细教程 图片讲解:
- mysql limit查询(分页查询)探究
MySQL的Limit子句 LIMIT offset,length Limit子句可以被用于强制 SELECT 语句返回指定的记录数.Limit接受一个或两个数字参数.参数必须是一个整数常量.如果给定 ...