当前位置: 首页 > news >正文

记录linux 生成crash dump文件步骤

执行文件编译时加入-g 命令

例如 g++ -g test.cpp

查看当前系统限制情况

ulimit -a

设置crash dump 文件大小

ulimit -c unlimited 
unlimited表示无大小限制,也可以指定具体的大小 
ulimit -c 1000 
表示文件大小限制为1000Kb 
若要全局生效需要在/etc/profile中加入上面的命令ulimit -c 1000,然后source /etc/profile使之生效

配置dump文件生成路径

/proc/sys/kernel/core_uses_pid 
文件内容为1表示dump文件以pid为扩展名 
/proc/sys/kernel/core_pattern 
core_pattern接受的是core文件名称的pattern,它包含任何字符串,并且用%作为转移符号生成一些标示符,为core文件名称加入特殊含义。已定义的标示符有如下这些: 
%%:相当于% 
%p:相当于pid 
%u:相当于uid 
%g:相当于gid 
%s:相当于导致dump的信号的数字 
%t:相当于dump的时间 
%e:相当于执行文件的名称 
%h:相当于hostname 
除以上这些标志位外,还规定: 
1、末尾的单个%可以直接去除; 
2、%加上除上述以外的任何字符,%和该字符都会被去除; 
3、所有其他字符都作为一般字符加入名称中; 
4、core文件的名称最大值为64个字节(包括’\0’); 
5、core_pattern中默认的pattern为core; 
6、为了保持兼容性,通过设置core_uses_pid,可以在core文件的末尾加上%p; 
7、pattern中可以包含路径信息。 
echo “/corefile/core-%e-%p-%t” > /proc/sys/kernel/core_pattern 
将会控制所产生的core文件会存放到/corefile目录下(/corefile目录需要提前创建),产生的文件名为core-执行文件名-pid-时间戳

在发生SIGSEGV时系统会自动在程序目录下生成core.xxxx文件,此即dump文件; 
注意,此时程序不能再注册SIGSEGV的处理函数! 
使用gdb分析dump文件: 
1.执行gdb:gdb –core=core.xxxx 
2.在gdb中加载符号文件:file ./a.out 
上两步也可以统一成:gdb a.out core.xxxx 
3.定位到出错代码:where或backtrace,将显示#x这样的堆栈信息 
4.查看更详细的函数调用信息:frame x,x为#后的数字

转载于:https://www.cnblogs.com/Ph-one/p/10871467.html

相关文章:

  • Kafka使用kclient三种使用方法
  • 一文简述多种强化学习算法,重要概念和术语一览
  • [linux time命令学习篇] time 统计命令执行的时间
  • Linux上shell脚本date的用法
  • linux下的shell运算(加、减、乘、除)
  • shell中的for循环用法详解
  • 中药介绍
  • linux下的usb抓包方法
  • 自旋锁spin_lock和raw_spin_lock
  • git 优雅的撤销中间某次提交
  • 让个人域名下GithubPage完美支持https
  • CloudFlare 新手入门中文教程
  • DNS解析类型的区别
  • 免费版CloudFlare CDN基本设置参考
  • Git missing Change-Id in commit message footer解决方法
  • Apache Pulsar 2.1 重磅发布
  • emacs初体验
  • ES2017异步函数现已正式可用
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Linux CTF 逆向入门
  • Lucene解析 - 基本概念
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • select2 取值 遍历 设置默认值
  • socket.io+express实现聊天室的思考(三)
  • Unix命令
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 思维导图—你不知道的JavaScript中卷
  • 终端用户监控:真实用户监控还是模拟监控?
  • puppet连载22:define用法
  • ​LeetCode解法汇总518. 零钱兑换 II
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (附源码)计算机毕业设计高校学生选课系统
  • (十八)三元表达式和列表解析
  • (四)鸿鹄云架构一服务注册中心
  • (算法)求1到1亿间的质数或素数
  • (转)Linq学习笔记
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .net core 6 redis操作类
  • .net Signalr 使用笔记
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .Net8 Blazor 尝鲜
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • []Telit UC864E 拨号上网
  • [100天算法】-目标和(day 79)
  • [20150321]索引空块的问题.txt
  • [20171113]修改表结构删除列相关问题4.txt
  • [20190113]四校联考
  • [BROADCASTING]tensor的扩散机制
  • [CodeForces-759D]Bacterial Melee
  • [codevs 1288] 埃及分数 [IDdfs 迭代加深搜索 ]
  • [C语言][C++][时间复杂度详解分析]二分查找——杨氏矩阵查找数字详解!!!
  • [dfs] 图案计数
  • [HackMyVM]靶场 VivifyTech