点击“蓝字”关注我吧

作者:良知犹存

转载授权以及围观:欢迎添加微信号:Conscience_Remains

总述

    今天我们介绍一下core dump文件,Core dump叫做核心转储,它是进程运行时在突然崩溃的那一刻的一个内存快照。操作系统在程序发生异常而异常在进程内部又没有被捕获的情况下,会把进程此刻内存、寄存器状态、运行堆栈等信息转储保存在一个文件里。

该文件也是二进制文件,可以使用gdb、elfdump、objdump或者windows下的windebug、solaris下的mdb进行打开分析里面的具体内容。

基于core文件的快照功能,我们就可以专门调试分析程序崩溃原因了,gdb同时调试一个运行程序和core文件,然后进行gdb调试的步骤,然后查看代码崩溃瞬间系统信息。

使用如下:

gdb  ./abort  ./core    /*  使用gdb调试*/

三、生成core文件配置

1.代码崩溃的条件有很多种,我们可以通过 kill -l 指令来查看奔溃的信号

kill -l

使用内存转储文件

ulimit

虽然我们知道进程在coredump的时候会产生core文件,但是有时候却发现进程虽然崩溃了,但是我们却找不到core文件。

这是因为系统默认情况下内存转储文件 的大小设置是零,我们需要重新配置一下。ulimit  -c 可以设置core文件的大小,如果这个值为0.则不会产生core文件,这个值太小,则core文件也不会产生,因为core文件一般都比较大。

2. 其中使用ulimit -c 可以查看你的系统对资源的限制情况

ulimit -c

发现设置为0

3.我们可以使用ulimit  -c unlimited来设置无限大,则任意情况下都会产生core文件

/*用来设置运行你的系统在应用程序崩溃之时可以生产core dump文件*/ulimit  -c unlimited

4.执行 ./编译好的执行文件,代码崩溃产生内存转储的core dump文件,ls 可看到一个名为core且以进程号为后缀的文件

5.调试coredump文件

 gdb ./statck  ./core

调试方法与gdb调试正常程序一样,详情参照上一篇一文入门Linux下gdb调试(一)。

这就是我分享的gdb core dump 生成及调试方法,如果大家有什么更好的思路,欢迎分享交流哈。

更多分享,扫码关注我

gdb 调试_一文入门Linux下gdb调试(二)相关推荐

  1. linux gdb网络调试,一文入门Linux下gdb调试(二)

    本文转载自[微信公众号:羽林君,ID:Conscience_Remains] 总述 今天我们介绍一下core dump文件,Core dump叫做核心转储,它是进程运行时在突然崩溃的那一刻的一个内存快 ...

  2. Linux下gdb调试用法

    稍微小小介绍一下 gdb是GUN组织开发的Linux下的调试利器.一般用于调试C/C++程序. GDB主要有以下4个功能: 1.启动你的程序,可以按照你的自定义的要求随心所欲的运行程序. 2.可让被调 ...

  3. linux下gdb调试方法和技巧详解

    linux下gdb调试方法和技巧整理 简介 UNIX或者UNIX-like下调试工具 启动gdb # 1. 在可执行程序不需要输入参数时,我们可以使用 gdb + 可执行程序 gdb ./typeid ...

  4. linux常用调试,linux下gdb常用的调试命令

    用gdb调试程序时,常常很困惑一些命令的使用,要么是不知道这个命令,要么忘了命令的使用方法.接下来是小编为大家收集的linux下gdb常用的调试命令,希望能帮到大家. linux下gdb常用的调试命令 ...

  5. LINUX下GDB调试

    LINUX下GDB调试 (gdb) p result[2]=33 $5 = 33 (gdb) p printf("result[2]=%d\n", result[2]) resul ...

  6. linux单步调试方法,linux下gdb单步调试(中).doc

    linux下gdb单步调试(中) linux下gdb单步调试(中) linux下gdb单步调试(中) 一.设置断点( BreakPoint ) 我们用 break 命令来设置断点.正面有几点设置断点的 ...

  7. C++(Qt)软件调试---linux下生成/调试Core文件(3)

    #软件调试 C++(Qt)软件调试-linux下生成/调试Core文件(3) 文章目录 C++(Qt)软件调试---linux下生成/调试Core文件(3) 前言 1.C++生成Core和使用GDB调 ...

  8. Linux下串口调试及使用shell编程接收数据

    串口简介 串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用.常用的串口是 RS-232-C 接口(又称 EIA RS-232-C)它是在 1970 年由美国电子工业协会(EIA)联 ...

  9. UART和RS232/RS485的关系是什么?RS485在linux下的调试 ubuntu串口调试工具

    串口通讯是电子工程师和嵌入式开发工程师面对的最基本问题,RS232则是其中最简单最常用的通讯方式.但是初学者往往搞不清有关的名词如UART和RS232或RS485之间是什么关系,因为它们经常被放到语句 ...

最新文章

  1. OpenAI魔改大模型,参数减少100倍!13亿参数InstructGPT碾压GPT-3
  2. 面霸篇:高频 Java 基础问题(核心卷一)
  3. java中split特殊符号
  4. linux 消息对lie_Linux进程间通信之消息队列总结
  5. 【转】WebAPI ASP.Net 发布部署中常见的两个错误未能找到 CodeDom未能加载System.Web.WebPages.Razor
  6. android+内存清理+代码,最新版本:Android一键式清理,内存清理功能的实现
  7. 【报告分享】2021日化行业社媒营销报告.pdf(附下载链接)
  8. linux7配置iptables配置转发,Centos7安装iptables及配置
  9. this.controls指所有控件吗?_Excel 控件【窗体控件】和【ActiveX控件】使用基础教程...
  10. 【渝粤教育】电大中专电商运营实操 (7)作业 题库
  11. JavaScript数组forEach循环
  12. doe五步法_DOE试验设计的五大步骤
  13. python计算斜率以及给定一组点两两求斜率
  14. 相濡以沫,不如相忘于江湖...
  15. 利用Python子进程关闭Excel自动化过程出现的弹窗
  16. Qt5.9问题解决 Clock skew detected. Your build may be incomplete,has modification time in the future
  17. 路由器和交换机的工作原理---笔面试
  18. html中的li标签不换行,css li 不换行(布局,内容)
  19. 真是经典中的经典!Android面试你必须要知道的那些知识,震撼来袭免费下载!
  20. 记一次云服务器重装CentOS7系统

热门文章

  1. 友盟ionic多渠道自动签名app
  2. [转]Express入门教程:一个简单的博客
  3. svn 把本地的项目,上传到服务器端
  4. UINavigationController与UITabbarController的样式
  5. 显示滚动条后,table 表头与内容不对齐,JS脚本控制
  6. hdu 1255 覆盖的面积 (Bruceforce)
  7. sqlserver与mysql的一些不同的T-SQL语句
  8. 【个人笔记】OpenCV4 C++ 快速入门 20课
  9. Linux虚拟内存那点事儿
  10. 3dtiles加载调度原理分析