本文转载自【微信公众号:羽林君,ID: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 生成及调试方法,如果大家有什么更好的思路,欢迎分享交流哈。

本文转载自【微信公众号:羽林君,ID:Conscience_Remains】

举报/反馈

linux gdb网络调试,一文入门Linux下gdb调试(二)相关推荐

  1. gdb 调试_一文入门Linux下gdb调试(二)

    点击"蓝字"关注我吧 作者:良知犹存 转载授权以及围观:欢迎添加微信号:Conscience_Remains 总述     今天我们介绍一下core dump文件,Core dum ...

  2. linux界面是什么样,Linux界面是怎样的?入门Linux运维学什么

    Linux是以Linux为内核的操作系统的主要工具语言,也是运维和云计算领域的主要技术. 随着it技术的快速发展,Linux运维岗位呈现了高需求量的状态. 因此,许多人想学习Linux运维技术.那么学 ...

  3. linux 测试网络_Linux后台开发:Linux命令系列18-ping测试网络

    ping命令是用于检测网络故障的常用命令,可以用来测试一台主机到另外一台主机的网络是否连通. 语法 ping [-dfnqrRv][-c][-i][-I][-l][-p][-s][-t][主机名称或I ...

  4. 戴文的linux内核专题 24,戴文的Linux内核专题:26 配置内核 (22)

    你好!本篇我们将继续配置quot;kernel hacksquot;,接着我们会配置整个安全系统. Alpha和s390处理器需要配置下一个特性(Force weak per-cpu definiti ...

  5. linux火车订票系统设计文档,linux下局域网火车时刻表广播系统设计与实现

    linux下局域网火车时刻表广播系统设计与实现 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 Linux下局域网火车时刻表广播系统设计 ...

  6. linux提升网络实时性,通过调整Linux内核参数提升网络性能

    如下网络配置参数调整,主要是针对请求压力大的Linux (2.6 kernel)服务器而言. 如果服务器压力不大,那么维持默认即可. 下述内容取材于"Performance Tuning F ...

  7. linux c 网络事件 通知,深入理解Linux网络技术内幕—通知链

    内核的很多子系统之间具有很强的相互依赖关系,其中一个子系统发现的或产生的事件,其他子系统可能都有兴趣.为了实现这种交互需求,Linux使用了通知链(Notification Chain)机制. 通知链 ...

  8. linux查看命令的帮助文档,Linux查看命令和帮助文件位置

    1. whereis简介 本文主要讲解whereis的功能与日常使用方法,该命令可以用于查找Linux指定命令的二进制文件.源文件和帮助文件的位置. 显示结果会去除主路径名和后缀名.whereis默认 ...

  9. linux系统盘的概念,了解linux系统硬盘分区概念-SELinux入门-linux网卡配置及参数学习_169IT.COM...

    几乎可以肯定每个人都听说过 SELinux (更准确的说,尝试关闭过),甚至某些过往的经验让您对 SELinux 产生了偏见.不过随着日益增长的0-day 安全漏洞,或许现在是时候去了解下这个在 Li ...

最新文章

  1. 小冰数字孪生主播正式上线 全球首创全流程无人化AI直播
  2. 逆天改命,机械飞升:渐冻症科学家拒绝等死,将自己改造成了「半机械人」...
  3. idea整合 spring boot jsp mybatis
  4. Keil C 里面Lib库文件的生成与调用
  5. 20 万、50 万、100 万年薪的算法工程师在能力素质模型上有哪些差距?
  6. [html] W3C--span is a nested element.
  7. js 正则表达式详细基础教程
  8. 一个在线排版小工具:中文、英文、数字、符号中间加个空格
  9. CSS3实现折角效果
  10. John the Ripper破解密码
  11. html5源码 母亲节,母亲节H5:非常有创意的5款母亲节H5案例分享
  12. 用Python制作二维码
  13. 【随笔1】石榴红,依旧。
  14. 拼多多拼单显示内部服务器错误,拼多多为什么拼不了?拼多多怎么拼单?
  15. 阿里云服务器CPU超分型专有宿主机创建v5实例
  16. 请教知网检索返回网址的问题
  17. java 记录错误日志文件_java日志记录错误的文件_方法_行号_报错信息
  18. 【知识分享】Modbus通信协议详解
  19. matlab计算abc三相短路电流_什么是短路计算电压?
  20. 优质网站资源推荐2.0

热门文章

  1. java编程基础答案_Java编程基础答案试题题目及答案,期末考试题库,章节测验答案...
  2. 【Framework】透视Android中的Handler
  3. 玩游戏提示计算机内存不足怎么办,win7玩绝地求生提示计算机内存不足怎么办...
  4. 大神们都是如何在时间序列中进行特征提取的?看完就懂了!
  5. 一段代码实现WordPress彩色标签云
  6. linux系列之-jar包文件替换
  7. 关键词推广-关键词推广软件
  8. ACM概率期望dp刷题总结
  9. 【爬虫实战】手把手教你用Python爬取某图网4000张图片
  10. 河北省 河南省 安徽省 黑龙江省 辽宁省 吉林省 贵州省 陕西省 山东省 云南省 广西省二级建造师 一级建造师...