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

记录一次Linux环境下遇到“段错误核心已转储”然后利用core文件解决问题的过程

参考Linux 下Coredump分析与配置

在做项目的时候,很容易遇到“段错误(核心已转储)”的问题。如果是语法错误还可以很快排查出来问题,但是碰到coredump就没办法直接找到问题,可以通过设置core文件来查找问题,直接定位到出问题的行号,十分方便。

什么是coredump

Core是内存的意思,当程序运行过程中检测到异常程序异常退出的时候,系统就会把程序当前的内存状况存储在一个core文件中,叫做coredumoed也就是信息转储,操作系统检测到当前进程异常时将通过信号的方式通知目标进程相应的错误信息比如我遇到的问题就是SIGSEGV信号(进程进行了一次无效的内存引用,不正确的内存处理)

配置core

  1. 在跟目录下面建立一个储存coredump文件的文件夹(最好是在根目录下面,不然有可能之后会有权限不够的问题)
mkdir /corefile
  1. 设置产生coredump文件的大小
  • 首先使用ulimit -a查看,core file是0的话这个时候就没有办法写core文件,所以要先设置大小
  • 早corefile文件中输入ulimit -c unlimited,设置大小之后最好不要关闭当前窗口,不然打开新窗口的时候core文件大小可能又变成0了
  • 执行以下两条命令:
echo "1" > /proc/sys/kernel/core_uses_pid //将1写入到该文件里
echo "/corefile/core-%e-%p-%t" > /proc/sys/kernel/core_pattern
  • 修改配置文件
vim /etc/profile

添加ulimit -S -c unlimited > /dev/null 2>&1
执行命令使其生效

source /etc/profile
  • 机器重启的时候清空corefile
    因为coredump文件很大会占用硬盘,所以在配置文件/etc/rc.local中最后面添加命令rm -rf /corefile/*,机器重启的时候清空这个文件夹
  • 再执行以下两条命令
 echo "1" > /proc/sys/kernel/core_uses_pid echo "/corefile/core-%e-%p-%t" > /proc/sys/kernel/core_pattern

测试

  • 在编译程序或者项目的时候,一定要加上-g,不然之后通过gdb查看问题的时候不会显示出错的地方的行号
  • 运行程序,出现“段错误核心已转储”,然后去corefile文件,命令行输入ll,出现如下结果
    在这里插入图片描述
  • 运行gdb阅读core文件
gdb 程序路径 对应的coredump文件
  • 如果命令输入不正确就会显示如下图
    gdb运行的时候没有输入这个程序路径:
    在这里插入图片描述
    编译的时候没有加参数-g:
    在这里插入图片描述
  • gdb运行成功:会显示出问题的行号,通过bt或者where看到函数调用栈情况

经过问题排查,发现我是因为错误使用内存,所以编写代码的时候要注意细节,如果出现问题要擅长通过gdb调试、core文件排查、解决问题。

相关文章:

记录一次Linux环境下遇到“段错误核心已转储”然后利用core文件解决问题的过程

参考Linux 下Coredump分析与配置 在做项目的时候,很容易遇到“段错误(核心已转储)”的问题。如果是语法错误还可以很快排查出来问题,但是碰到coredump就没办法直接找到问题,可以通过设置core文件来查找问题&#xff0…...

WPF中自定义Loading图

纯前端方式&#xff0c;通过动画实现Loading样式&#xff0c;如图所示 <Grid Width"35" Height"35" HorizontalAlignment"Center" VerticalAlignment"Center" Name"Loading"><Grid.Resources><DrawingBrus…...

用html+javascript打造公文一键排版系统14:为半角和全角字符相互转换功能增加英文字母、阿拉伯数字、标点符号、空格选项

一、实际工作中需要对转换选项细化内容 在昨天我们实现了最简单的半角字符和全角字符相互转换功能&#xff0c;就是将英文字母、阿拉伯数字、标点符号、空格全部进行转换。 在实际工作中&#xff0c;我们有时只想英文字母、阿拉伯数字、标点符号、空格之中的一两类进行转换&a…...

叮咚买菜财报分析:叮咚买菜第二季度财报将低于市场预期

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 卖方分析师对叮咚买菜第二季度财报的预测 尽管叮咚买菜&#xff08;DDL&#xff09;尚未明确披露第二季度财报的具体日期&#xff0c;但根据其以往的业绩公告&#xff0c;猛兽财经认为叮咚买菜很有可能会在8月的第二周发布…...

设计模式行为型——中介者模式

目录 什么是中介者模式 中介者模式的实现 中介者模式角色 中介者模式类图 中介者模式代码实现 中介者模式的特点 优点 缺点 使用场景 注意事项 实际应用 什么是中介者模式 中介者模式&#xff08;Mediator Pattern&#xff09;属于行为型模式&#xff0c;是用来降低…...

Vue——formcreate表单设计器自定义组件实现(二)

前面我写过一个自定义电子签名的formcreate表单设计器组件&#xff0c;那时初识formcreate各种使用也颇为生疏&#xff0c;不过总算套出了一个组件不是。此次时隔半年又有机会接触formcreate&#xff0c;重新熟悉和领悟了一番各个方法和使用指南。趁热打铁将此次心得再次分享。…...

人脸验证(Face verification) 和 人脸识别(Face recognition) 的区别

人脸验证(Face verification) 和 人脸识别(Face recognition) 的区别 Face verification 和 Face recognition 都是人脸识别的技术&#xff0c;但是它们的应用和目的不同。 Face verification&#xff08;人脸验证&#xff09;是指通过比对两张人脸图像&#xff0c;判断它们是…...

前端如何打开钉钉(如何唤起注册表中路径与软件路径不关联的软件)

在前端唤起本地应用时&#xff0c;我查询了资料&#xff0c;在注册表中找到腾讯视频会议的注册表情况&#xff0c;如下&#xff1a; 在前端代码中加入 window.location.href"wemeet:"; 就可以直接唤起腾讯视频会议&#xff0c;但是我无法唤起钉钉 之所以会这样&…...

数据可视化入门指南

数据可视化是一种将抽象的数值和数据转换为易于理解的图像的方法。它可以帮助人们更好地理解数据的含义&#xff0c;并且可以揭示数据中可能被忽视的模式和趋势。本文将为你提供一个简单的数据可视化入门指南。 为什么数据可视化重要&#xff1f; 在我们的生活中&#xff0c;数…...

React 18 响应事件

参考文章 响应事件 使用 React 可以在 JSX 中添加 事件处理函数。其中事件处理函数为自定义函数&#xff0c;它将在响应交互&#xff08;如点击、悬停、表单输入框获得焦点等&#xff09;时触发。 添加事件处理函数 如需添加一个事件处理函数&#xff0c;需要先定义一个函数…...

面试总结-c++

1该吹牛逼吹牛逼。在自己能说出个所以然的情况下&#xff0c;该吹就吹&#xff0c;不吹没工作&#xff0c;吹了有希望。 比如 c组长&#xff0c;确有其事&#xff0c;但是挺唬人。说自己在北京定居也是侧面吹牛逼&#xff0c;证明自己的能力。还有媳妇在研究所。 2.对自己做过…...

Spring(九) - 解惑 spring 嵌套事务.2

1. 事务传播特性 在所有使用 spring 的应用中, 声明式事务管理可能是使用率最高的功能了, 但是, 从我观察到的情况看,绝大多数人并不能深刻理解事务声明中不同事务传播属性配置的的含义, 让我们来看一下 TransactionDefinition 接口中的定义 Java代码 /** * Support a cu…...

Android Studio API 33 获取当前连接的WIFI名称

常规流程失败流程 常规流程 以下内容在 API 33 成功实现&#xff0c;低版本API还请自行尝试&#xff08;仅推荐 API 29 - 33 用户食用&#xff09; 先&#xff08;至少&#xff09;添加以下权限到你的 AndroidManifest.xml 文件 <uses-permission android:name"andr…...

ICCV 2023 | 半监督三维目标检测新SOTA:密集匹配和量化补偿

论文链接&#xff1a;https://arxiv.org/abs/2304.13031 开源代码仓库地址&#xff1a;https://github.com/AIR-DISCOVER/DQS3D 方法效果对比图&#xff1a;有效在半监督情况下处理临近小物体 01. 简介 本文旨在解决三维室内场景中高昂的标注成本问题&#xff0c;特别关注半监…...

python+django+mysql项目实践三(用户管理)

python项目实践 环境说明: Pycharm 开发环境 Django 前端 MySQL 数据库 Navicat 数据库管理 用户列表展示 urls view models html <!DOCTYPE html> <html...

Java多线程 | 操作线程的方法详解

文章目录 一、线程的启动1.1 start()方法 二、线程的休眠与中断2.1 Thread.sleep()方法2.2 interrupt()方法 三、线程的等待与唤醒3.1 wait()方法3.2 Object类的notify()和notifyAll()方法3.3 await()和signal()方法3.4 使用join()方法等待线程执行完成 四、线程的状态控制与管…...

【ConcurrentHashMap1.7源码】十分钟带你深入ConcurrentHashMap并发解析

ConcurrentHashMap1.7源码 四个核心要点 初始化PUT扩容GET Unsafe 初始化 五个构造方法 /*** Creates a new, empty map with the default initial table size (16).*/public ConcurrentHashMap() {}/*** Creates a new, empty map with an initial table size* accommodati…...

程序框架-事件中心模块-观察者模式

一、观察者模式 1.1 观察者模式定义 意图&#xff1a; 定义对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变是&#xff0c;所有依赖于它的对象都能得到通知并自动更新。 适用性&#xff1a; 当一个对象状态的改变需要改变其他对象&#xff0c; 或实际对…...

通过AOP的ProceedingJoinPoint获取方法信息

文章目录 ProceedingJoinPoint用法 ProceedingJoinPoint用法 获得切点对应的方法&#xff08;Method&#xff09; 本处Method指的是java.lang.reflect.Method 若切入点表达式是方法&#xff0c;则获得的是切入点方法的信息。若切入点表达式是注解&#xff0c;则获得的是使用了…...

【JavaSE】初步认识类和对象

【本节目标】 1. 掌握类的定义方式以及对象的实例化 2. 掌握类中的成员变量和成员方法的使用 3. 掌握对象的整个初始化过程 目录 1. 面向对象的初步认知 2. 类定义和使用 3. 类的实例化 4. this引用 1. 面向对象的初步认知 1.1 什么是面向对象 Java是一门纯面向对象的语…...

粒子群算法调参指南:如何避免陷入局部最优(附非线性递减权重实现)

粒子群算法调参实战&#xff1a;非线性权重策略与全局优化技巧 粒子群优化算法&#xff08;PSO&#xff09;作为群体智能领域的经典方法&#xff0c;其性能高度依赖参数配置。许多工程师在基础应用阶段能够获得可接受的结果&#xff0c;但当问题复杂度提升时&#xff0c;常常陷…...

正规DAPP的奖励,到底来自哪里?(Web3避坑指南)

市面上正规的DAPP项目&#xff0c;那些奖励到底源自何处&#xff1f;这是一个看似基础&#xff0c;却能筛选出绝大多数Web3坑的核心问题——很多人盲目追逐高收益&#xff0c;却从未深究“钱从哪来”&#xff0c;最终沦为资金盘的接盘侠。今天&#xff0c;我们就沉下心聊聊这个…...

Ganache Provider事件系统:如何监控和调试智能合约执行

Ganache Provider事件系统&#xff1a;如何监控和调试智能合约执行 【免费下载链接】ganache :warning: The Truffle Suite is being sunset. For information on ongoing support, migration options and FAQs, visit the Consensys blog. Thank you for all the support over…...

s2-pro GPU利用率提升方案:批处理+流式响应优化语音合成吞吐量

s2-pro GPU利用率提升方案&#xff1a;批处理流式响应优化语音合成吞吐量 1. 引言 语音合成技术正在快速改变内容创作的方式&#xff0c;但很多开发者在使用s2-pro这类专业级语音合成模型时&#xff0c;常常遇到GPU利用率低下的问题。想象一下&#xff0c;当你需要批量生成数…...

Qwen3-VL-4B Pro效果实测:看图说话、细节识别有多准?

Qwen3-VL-4B Pro效果实测&#xff1a;看图说话、细节识别有多准&#xff1f; 1. 4B模型的视觉理解能力有多强&#xff1f; 当谈到视觉语言模型时&#xff0c;很多人会问&#xff1a;4B参数的模型到底能看懂多少图片细节&#xff1f;我们通过一系列实测发现&#xff0c;Qwen3-…...

波动方程的平面波解

...

我需要开发出一个检测手机移动的算法来

1 用GPS2 运动传感器3 其他传感器就是真正能100%不会误报&#xff0c;而且精度达到&#xff1a;只要移动距离超过1米就要报警的那种。挂在树上面即使手机不停在转动也不会误报后来发现&#xff1a;只需要一个位移检测算法就可以了。...

计算机内存与缓存完全指南

计算机内存与缓存完全指南 目录 计算机存储体系概览内存&#xff08;RAM&#xff09;深度解析 2.1 RAM 的基本原理2.2 DRAM vs SRAM2.3 DDR 内存发展历史与对比2.4 内存关键参数详解2.5 内存模组类型&#xff08;DIMM / SO-DIMM / LPDDR&#xff09; CPU 缓存深度解析 3.1 缓…...

STTS751高精度温度传感器嵌入式驱动设计与RTOS集成

1. STTS751温度传感器驱动库深度解析&#xff1a;面向嵌入式系统的IC高精度测温实现STTS751是意法半导体&#xff08;STMicroelectronics&#xff09;推出的一款高精度、低功耗数字温度传感器&#xff0c;采用紧凑型8引脚TDFN封装&#xff08;2mm 2mm&#xff09;&#xff0c;…...

新手必看:在快马平台三步生成mobaxterm中文设置图文指南

今天想和大家分享一个超级实用的技巧——如何把Mobaxterm的界面设置成中文。作为一个过来人&#xff0c;我特别理解新手面对全英文界面的那种手足无措感。不过别担心&#xff0c;跟着下面这几个步骤操作&#xff0c;五分钟就能搞定&#xff01; 下载安装时就要注意 在官网下载安…...