【错误 :Segmentation fault 】以及gdb调试 core duumped文件

news2024/11/23 21:28:58

core dumped文件(核心转储文件) 当进程意外终止,系统可以将该进程的地址空间的内容急终止的一些其它信息转储到核心转储文件
在这里插入图片描述
它的触发条件,当系统收到以下信号时就会产生coredumped文件。

 SIGABRT :异常终止(abort)时发出的信号  
       说明:  
              调用abort函数时产生此信号。进程异常终止。  
  
SIGBUS :硬件发生故障时发出的信号  
       说明:  
              指示一个实现定义的硬件故障。  
  
SIGFPE :算术异常时发出的信号  
       说明:  
              此信号表示一个算术运算异常,例如除以0,浮点溢出等。  
  
SIGILL :遇到非法硬件指令时发出的信号  
       说明:  
              此信号指示进程已执行一条非法硬件指令。4.3BSD由abort函数产生此信号。现在 abort() 函数用来生成 SIGABRT 信号。  
  
SIGIOT :硬件故障时发出的信号  
       说明:  
              IOT这个名字来自于PDP-11对于 输入/输出 TRAP(input/output TRAP)指令的缩写。系统V的早期版本,由abort函数产生此信号。SIGABRT现在被用于此。  
  
SIGQUIT :终端退出时发出的信号  
       说明:  
              当用户在终端上按退出键(一般采用Ctrl-\)时,产生此信号,并送至前台进程组中的所有进程。此信号不仅终止前台进程组(如SIGINT所做的那样),同时产生一个core文件。  
  
SIGSEGV :无效存储访问发出的信号  
       说明:  
              进程进行了一次无效的存储访问。字SEGV表示“段违例(segmentation violation)”。  
  
SIGSYS :无效的系统调用时发出的信号  
       说明:  
              进行了一个无效的系统调用。由于某种未知原因,进程执行了一条系统调用指令,但其指示系统调用类型的参数却是无效的。  
  
SIGTRAP :硬件故障时发出的信号  
       说明:  
              此信号名来自于 PDP-11 的TRAP指令。  
  
SIGXCPU :超过CPU限制(setrlimit)时发出的信号  
       说明:  
              SVR4 和 4.3+BSD 支持资源限制的概念。如果进程超过了其软 CPU 时间限制,则产生此信号。      
              XCPU 是 "exceeded CPU time“ 的缩写。  
  
SIGXFSZ :超过文件长度限制(setrlimit)时发出的信号  
       说明:  
              如果进程超过了其软文件长度限制时发出此信号。 

我们可以通过ulimit来查看cored dumped文件状态在这里插入图片描述
此时这个就是core dumped 文件的设置,我们可以看到它的大小为0,即当程序出错后不自动产生core dumped文件

我们可以使用 ulimit -c 来修改

比如:ulimit -c 1024

表示如果生成的信息超过此大小,将会被裁剪,最终生成一个不完整的core文件。(此时gdb调试时会错误)。

使用ulimit -c unlimited,则表示core文件的大小不受限制。

此时的配置只是临时配置,当下次再开启终端时由会变成默认值。(一般建议不永久修改,因为比如程序过大时,每次出错都会生成这个文件,如果不删除的话,最终会耗尽空间)。

当这个为core file size 的大小为0时,发生错误时Segmentation fault后面没有core dumped
在这里插入图片描述
当我们修改后,它后面就出现了core dumped。
在这里插入图片描述

cat /proc/sys/kernel/core_pattern

我们可以通过这个命令查看core dumped文件生成路径(有的情况下它这个默认路径是不会生成core dumped文件的)。
这个时候我们可以自己配置这个路径,通过下面的命令

echo "自己要存放的路径/core-%t-%p" > /proc/sys/kernel/core_pattern

core-%t-%p是生成core文件的名字,%t和%p是格式(%t(时间戳),%p(pid))

此时我们就可以通过gdb来调试了。(main 是我的可执行程序(它在我core文件的上一级目录),core-1669703517-2357601是我的core文件)。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/46101.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

野火FPGA进阶(1):基于SPI协议的Flash驱动控制

文章目录第48讲:基于SPI协议的Flash驱动控制0. 理论部分1. Flash全擦除实验key_filterflash_be_ctrlspi_flash_betb_flash_be_ctrltb_spi_flash_be2. Flash扇区擦除实验key_filterflash_se_ctrlspi_flash_se3. 数据读操作key_filteruart_txflash_read_ctrlspi_flash…

专注于元宇宙实际应用方案的企业

元宇宙的话题持续火热。国内互联网大厂正在加大对元宇宙相关技术和应用的研发,元宇宙正在逐步成为创新创业的主战场。企业元宇宙在教育、会展、文创、旅游、博物馆、文化艺术、娱乐、社交、版权、零售等等领域发力,增加客户对企业的认同。 也许未来只需一…

接口测试学习第一天

1. 接口 接口的定义:是指系统或组件之间的交互点,通过这些交互点可以实现数据的交互。(数据交互的通道) 接口的分类:硬件接口和软件接口;我们这里只关注软件层面的接口; 1.1 接口的类型 接…

LeetCode-28-找出字符串中第一个匹配项的下标

1、KMP算法$$ 解决本问题最简单的方法就是暴力穷举,思路简单但时间复杂度为O(m∗n)O(m*n)O(m∗n)。此处我们仅考虑最优的KMP算法,时间复杂度为O(mn)O(mn)O(mn)。 KMP算法的优化之处在于当我们对比haystackhaystackhaystack和needleneedleneedle时&…

[附源码]计算机毕业设计springboot基于Java酒店管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

亚马逊商品销售数据爬虫分析报告

家电产业和消费者升级悄然地展开。 市场的这种变化使消费者对家用电器的期望不再仅仅是一个简单的功能满足,而是更多的细节体验和技术创新。 通过洞察家用电器的消费特点,有利于确定市场的未来趋势,从而积极应对市场变化。 ▼ 我们围绕亚马逊…

AI智能视频技术在考古工作中的安防应用

文物考古关系着民族文化的传承、历史的记录与保留,工作意义重大。考古发掘工地由于面积大、区域多且分散,以及周边环境复杂,因此安全防护工作开展困难,整体的安全形势不容乐观。 一、考古现场安保面临问题:1、考古遗址…

K - Scholomance Academy Gym - 103202K

题目链接 题意:很长,读了很长时间才懂: 就是给一个物品评分,假设分数大于等于x,就将其判断为正数,否则判断为负数 这样判断肯定会出现一些误判,那么我们将判为负数的正数成为假正数&#xff0…

C. Set or Decrease(二分 + 有两个不确定情况如何二分)

Problem - 1622C - Codeforces 给你一个整数数组a1,a2,...,an和整数k。 在一个步骤中,你可以 选择某个索引i并将ai减少1(使aiai-1)。 或者选择两个索引i和j,将ai等于aj(使aiaj)。 为了使数组∑i1nai≤k的…

启动服务提供者报 zookeeper not connected错

今天启动zookeeper的服务提供者后,报 zookeeper not connected错,记录一下解决过程 意思是zookeeper注册中心连接不上,无非两个原因: 第一:zookeeper没有启动好。第二:zookeeper的ip以及端口号配置没配好 …

算法day35|860,406,452

目录 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球 860.柠檬水找零 class Solution:def lemonadeChange(self, bills: List[int]) -> bool:five,ten,twenty 0,0,0for bill in bills:#情况一:如果bills是5元,不需要找零if bill…

黑马点评--附近商铺

附近商铺 GEO数据结构 GEO就是Geolocation的简写形式,代表地理坐标。Redis在3.2版本加入了对GEO的支持,允许存储地理坐标消息,帮助我们根据经纬度来检索数据。常见的命令有: GEOADD:添加一个地理空间信息&#xff0…

gcexcel-java-5.2.5 Crack update in 2022-11-28

gcexcel高速 Java Excel 电子表格 API 库 在 Java 应用程序中以编程方式创建、编辑、导入和导出 Excel 电子表格。几乎可以在任何地方部署。 创建、加载、编辑和保存 Excel 电子表格 保存为 .XLSX、PDF、HTML、CSV 和 JSON 基于具有零 Excel 依赖性的 Excel 对象模型 在本地、…

Tomcat负载均衡部署动静分离

NginxTomcat架构拓扑 环境部署 Nginx服务器:IP地址192.168.32.3 Tomcat服务器1:IP地址192.168.32.4 Tomcat服务器2:IP地址192.168.32.5 关闭防火墙,关闭开机自启 systemctl stop firewalld.service setenforce 0Nginx 主机安…

计算机组成原理习题课第三章-1(唐朔飞)

计算机组成原理习题课第三章-1(唐朔飞) ✨欢迎关注🖱点赞🎀收藏⭐留言✒ 🔮本文由京与旧铺原创,csdn首发! 😘系列专栏:java学习 💻首发时间:&…

高电压放大器与高电流放大器该如何选择使用

虽然电压放大器和电流放大器都属于功率放大器的分支类型,所能起到的效果和作用也都是一致的,不过两者还是细微差别的。经常会有人在后台咨询“电压放大器和电流放大器有什么区别,该如何选择使用”等等,针对这些疑问,今…

zynq实现视频动态字符叠加OSD,提供2套工程源码和技术支持

目录1.网上同行的OSD方案(太low)2.本方案OSD的优势3.HLS实现方案4.OSD延时和资源占用情况5.工程1:zynq7100实现字符叠加6.上板调试验证7.福利:工程源码获取1.网上同行的OSD方案(太low) 视频的字符叠加,简称OSD,是FPGA图像处理的基…

PG::Vegeta1

nmap -Pn -p- -T4 --min-rate1000 192.168.201.73 nmap -Pn -p 22,80 -sCV 192.168.201.73 查看80端口的服务。 没有发现可用的信息,尝试爆破路径。 gobuster dir -e -w /usr/share/wordlists/SecLists/Discovery/Web-Content/directory-list-2.3-big.txt -u htt…

年薪50W的数字前端设计工程师是做什么的?

近两年,芯片行业大火,行业的发展受到了很大的政策支持,芯片行业不仅发展前景好,薪资待遇也很高,所以不少人纷纷转行IC,那么转行IC岗位该如何选择呢?下面IC修真院就重点为大家来介绍一下数字前端…

【Android App】检查手机连接WiFi信息以及扫描周围WiFi的讲解及实战(附源码和演示 超详细必看)

需要全部代码请点赞关注收藏后评论区留言私信~~~ 一、检查是否连接WiFi以及输出WiFi信息 传统的定位方式不适用于室内的垂直定位,原因如下: (1)卫星定位要求没有障碍物遮挡,它在户外比较精准,在室内信号就…