引入:

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 否则调试时造成困难

定位出错位置

转载于:https://www.cnblogs.com/Neo007/p/7269105.html

【Linux】Core dump故障分析相关推荐

  1. Linux core dump的详细介绍及使用

    我们在开发(或使用)一个程序时,最怕的就是程序莫明其妙地当掉.虽然系 统没事,但我们下次仍可能遇到相同的问题.于是这时操作系统就会把程序当掉 时的内存内容 dump 出来,让我们或是debugger ...

  2. Linux Core Dump

     1. 前言: 有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的. 但这不像编译错误一样会提示到文件->行, 而是没有任何信息, 使得我们 ...

  3. Segment fault及LINUX core dump详解

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

  4. linux dump core 文件位置,Linux core dump使用

    什么是 core dump? core dump是一个当进程意外终止时包含进程内存内容的文件.当程序崩溃的时候,core dump由kernel触发.core dump能够做为程序崩溃时的过后快照(p ...

  5. linux 进程内存 dump,linux core dump

    core dump:(内存快照)在linux中当程序发生异常中止或者崩溃时,操作系统会将程序当时的内存状况记录下来,存放到一个文件中,这中行为就叫core dump.core dump不仅保存了程序当 ...

  6. 调试技术: Linux core dump file

    1. 前言: 有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的. 但这不像编译错误一样会提示到文件->行, 而是没有任何信息, 使得我们的 ...

  7. Linux core dump文件设置以及查看

    1.查看当前系统是否生成core dump文件 ulimit -c 0:表示当前不生成core dump文件 大于0的数:表示当前生成的core dump文件大小限制在该值以内,单位是Kb. unli ...

  8. linux core dump调试

    1 cmake gdb 调试, CMakeLists.txt 设置 方法1: SET(CMAKE_BUILD_TYPE "Debug")   SET(CMAKE_CXX_FLAGS ...

  9. core dump 崩溃分析

    linux core dump 分析无调试符号 core dump 文件 linux core dump 一般称为核心转储.内核转储,统称为转储文件. 代表某个时刻.某个进程的内存信息映射.包含了生成 ...

最新文章

  1. 主成分分析(PCA)简介
  2. 第三章 “我要点爆”微信小程序云开发之点爆方式页面和爆炸之音页面制作
  3. Python生成Windows可执行exe文件
  4. 模拟springIOC容器的annotation
  5. Request load debugging - CRM side
  6. CF39C-Moon Craters【dp】
  7. nagios整合cacti2011版(五)
  8. MySQL定时执行脚本(计划任务)命令实例
  9. HDU 1160 FatMouse#39;s Speed DP题解
  10. mysql select count() count(1)_select count()和select count(1)的区别和执行方式讲解
  11. typescript之hasOwnProperty
  12. Linux课程笔记 Day05 命令总结
  13. seq()函数--R语言
  14. VSTO程序基本知识(二)
  15. SENSOR DVP接口介绍
  16. 一个简单的form表单登录界面
  17. ajax前端分页实现
  18. error: The folder you are executing pip from can no longer be found.
  19. 文件上传保姆级教程(原理,大小马,CTF,防御,绕狗一句话,upload-labs)
  20. SpringSecurity以及Oauth2(笔记)

热门文章

  1. Oracle SQL 优化原则(实用篇)
  2. Apache Commons介绍(转载)
  3. sublime----------快捷键的记录
  4. 用Node操作Firebird。
  5. Highcharts使用=====通过指定日期显示曲线
  6. 浅谈第三方电子支付平台测试方法的研究
  7. Report_SRW在RDF中初始化的重要性(案例)
  8. Bash 手册 v3.2 - 5
  9. mysql _bin编码_mysql中utf8_bin、utf8_general_ci、utf8_general_cs编码区别
  10. 【答辩问题】计算机专业本科毕业设计答辩需注意的内容