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

coredump配置调试

1.介绍

      程序异常退出时,会产生一个core文件,该文件记录了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工作当前状态存储生成的一个文件,通过工具分析这个文件,我们可以定位到程序异常退出的时候对应的堆栈调用等信息,找出问题所在并进行及时解决。

2.设置core文件生成的目录

  如果不设置,默认会在当前的目录生成一个core文件。

那为什么我们的程序异常了,怎么没生成呢,是因为还有东西没设置,通过命令ulimit -a看一下:

ulimit -a

file size为0,所以不生成,需要修改:

ulimit -c unlimited

 不过这种方法只在当前的命令框有效,要想永久有效,需要设置:

/etc/security/limits.conf

 

这种方法好像不起作用。

不能产生core文件到指定路径的原因主要是:

(1)ulimit -c的大小,不能为0

(2)指定的路径是否正确,并要有权限

3.测试

 写一段有问题的代码:

#include<stdio.h>
int main(){
  char *p = NULL;
  *p = 0;
  return 0;
}

生成了core文件:

 当然做工程还是要把core文件放在专门的目录下,命名也修改一下:

echo /corefile/core-%e-%p-%t >/proc/sys/kernel/core_pattern

前提/corefile目录存在,并且有写入权限,其中%e表示程序文件名,%p表示进程ID,%t是时间戳。

 4.调试

在编译的时候加上-g,出现core文件进行调试:

相关文章:

  • Linux I/O复用技术---select
  • log4cpp的使用
  • Linux I/O复用技术---poll
  • Linux I/O复用技术---epoll
  • 网络通信基础知识(tcp/ip)
  • protobuf(C++)的使用(windows)
  • 常用字符串函数的实现
  • 使用宏定义max函数
  • libevent的使用
  • 线程的同步手段
  • 单台百万并发
  • 数据结构与算法知识点
  • fastdfs+nginx集群搭建
  • zeromq的使用(windows)
  • DLL的种类
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • E-HPC支持多队列管理和自动伸缩
  • Javascript基础之Array数组API
  • laravel with 查询列表限制条数
  • LeetCode29.两数相除 JavaScript
  • mysql 数据库四种事务隔离级别
  • Mysql优化
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Python打包系统简单入门
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 复习Javascript专题(四):js中的深浅拷贝
  • 爬虫模拟登陆 SegmentFault
  • 如何进阶一名有竞争力的程序员?
  • 三分钟教你同步 Visual Studio Code 设置
  • puppet连载22:define用法
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​比特币大跌的 2 个原因
  • ​你们这样子,耽误我的工作进度怎么办?
  • #define 用法
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (1)Nginx简介和安装教程
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (k8s中)docker netty OOM问题记录
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (转)3D模板阴影原理
  • .NET Core 中插件式开发实现
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .net 验证控件和javaScript的冲突问题
  • .net6+aspose.words导出word并转pdf
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .skip() 和 .only() 的使用
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • @Autowired自动装配
  • @Valid和@NotNull字段校验使用
  • [20150321]索引空块的问题.txt
  • [bzoj 3534][Sdoi2014] 重建
  • [CentOs7]图形界面