Linux遇到Aborted (core dumped)

article/2025/10/29 18:29:15

1、问题描述

在这里插入图片描述
或出现:
在这里插入图片描述

2、关于Core Dump的分析

2.1 什么是Core Dump

  • Core的意思是内存, Dump的意思是扔出来, 堆出来。在开发(或使用)一个程序时,有时程序莫名其妙的down了, 却没有任何的提示(有时候会提示core dumped)。虽然系统没事,但我们下次仍可能遇到相同的问题。这时候可以查看一下有没有形如core.PID的core文件生成,这个文件便是操作系统把程序down掉时的内存内容扔出来生成的,让我们或是 debugger 做为参考。这个动作就叫作 core dump。
  • core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump。简而言之,进程异常终止,进程用户空间的数据就会被写到磁盘

2.2 为何有时程序Down了,却没生成 Core文件。

  • 有时候程序down了, 不像编译错误一样会提示到文件一行,而是没有任何信息。一种办法是用gdb的step(linux下调试工具gdb是很强大的调试器), 一步一步寻找,但要step一个上万行的代码让人难以想象。 我们还有更好的办法,这就是core file。
  • 但是core文件却没有生成,这是因为core.PID的core文件的生成跟你当前系统的环境设置有关系,系统默认core文件的大小为0(注意core file size (blocks, -c) 0 这行,这表示的是分配给core文件的长度(单位为字节,一个块的大小要分系统而定了),为0肯定是不得行的,那就修改之
    在这里插入图片描述
  • 则需要用ulimit命令查看和修改core文件的大小,使用ulimit -a查看大小,使用 ulimit -c unlimited表示对core文件不做限制 或 使用ulimit -c 1024 对core文件分配1024个字节。
    在这里插入图片描述
  • 然后再运行程序便成生成core.PID的core文件(core文件生成的位置一般和运行程序的路径相同, 文件名一般为core.进程号)。

2.3 如何使用core文件?

发生core dump之后,使用gdb查看core文件的内容, 以定位文件中引发core dump的行,在在Linux下,查看core文件中的出错堆栈信息有二种方式,使用:gdb -c core.pid program_namegdb [program_name] [core.pid]可以进入gdb模式:

  • 在进入gdb后输入where并回车,就可以指出是在哪一行被Down掉,在哪个函数内,由谁调用等等。
  • 在进入gdb后输入 bt,用bt命令查看backtrace以检查发生程序运行到哪里,来定位core dump的文件->行。

3、多种示例

3.1 batch_size过大导致的

Aborted(core dumped)

3.2 线程被谋杀, 被谋杀者所在线程会抛出一个异常

Cancellation & C++ Exception

3.3 关于 pure virtual method called terminate called without an active exception 解决方案

对于多线程的程序,这个错误的主要原因是当前对象已经被销毁或者正在被销毁,但是其又在被调用,导致了冲突。

3.4 pure virtual method called

记录一个编写多线程程序时遇到的运行时错误:pure virtual method called

起因是写了一个多线程基类,里面有一个纯虚函数run,子类继承了这个run,重点就在纯虚函数上,因为是在基类中构造时创建的线程,线程创建后直接运行run函数,而这时子类尚未构造,所以run函数此时依旧是纯虚函数,就会出现pure virtual method called这个错误而终止运行,感谢http://bbs.csdn.net/topics/340224117这个帖子里的大神们

参考1:什么是Core Dump?
参考2:Segmentation fault (core dumped)的解决办法
参考3:关于Segmentation fault (core dumped)几个简单问题
参考4:关于core文件
参考5:ubuntu查看core dumped的详细错误原因


http://chatgpt.dhexx.cn/article/3lKvy9nF.shtml

相关文章

【解决】Requests库的SSL警告:InsecureRequestWarning: Unverified HTTPS request is being made.

Requests库的SSL警告:InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings InsecureRequestWarning) 原因…

AdaIN

作为自己理解的简单记录: 原图A和目标风格图B 都先经过编码器分别得到A’和B’,然后AdaIN相当于起到一个特征迁移的作用。使A’的特征分布向B’靠拢,使得之后decode后的图片具有B的特征。

[advGAN]Generating Adversarial Examples With Adversarial Networks

这周读论文。。读的是这篇反正。这个内容比较新,网上也没啥有特别有价值的参考内容,把学习笔记发上来,希望能有一点点帮助 嗯似乎是提出了用GAN以解决神经网络安全性的问题。。。 白盒攻击 攻击者能够获知机器学习所使用的算法,以…

Adversarial Learning

GAN KL散度,JS散度 传统GAN 在辨别器最优时,生成器的loss为 根据KL,JS散度, 但是如果两个分布完全没有重叠的部分,或者它们重叠的部分可忽略时 JS散度始终未log2 而这对于梯度下降方法意味着——梯度为0 生成样本分布的支撑集就…

Adversarial Detection methods

文章目录 Kernel Density (KD)Local Intrinsic Dimensionality (LID)Gaussian Discriminant Analysis (GDA)Gaussian Mixture Model (GMM)SelectiveNetCombined Abstention Robustness Learning (CARL)Adversarial Training with a Rejection Option Energy-based Out-of-distr…

【小家Spring】Spring AOP各个组件概述与总结【Pointcut、Advice、Advisor、Advised、TargetSource、AdvisorChainFactory...】

每篇一句 基础技术总是枯燥但有价值的。数学、算法、网络、存储等基础技术吃得越透,越容易服务上层的各种衍生技术或产品 相关阅读 【小家Spring】Spring AOP原理使用的基础类打点(AopInfrastructureBean、ProxyProcessorSupport、Advised、AjType&…

ADDA: Adversarial Discriminative Domain Adaptation

ADDA原理理解 ADDA中源域和目标域经过不同的映射来实现对齐。 ADDA的目标函数包括三项: 1.源域的分类误差项 2.域分类器的分类误差项 3.生成器在目标域的误差项 1.源域的分类误差项 源域数据在经过映射Ms后的分类误差最小: 2.域分类器的分类误差项 …

IllegalStateException: Cannot find current proxy: Set 'exposeProxy' property on Advised to 'true'

在使用 Async 注解实现异步线程的时候,为了能够在同类中调用,使用AopContext获取类的实例,结果报错: 调用如下: GetMapping("test03")public void testAsync03() throws InterruptedException {log.info(&…

ADVISOR - 1

文章目录 1. ADVISOR 是什么1. 2 ADVISOR 可以用来做什么1.3 ADVISOR 不能做什么 1. ADVISOR 是什么 它是基于 MATLAB/Simulink 开发的一系列模型、数据以及脚本,能帮助我们快速分析传统车、纯电车以及混动车的性能和油耗。 能找到的最新的 ADVISOR 版本是 2003&a…

Advisor-Advisee Relationship

一、实习目的及要求 此次实习的任务中有Advisor-advisee Relationships (AARs)和通过分别计算AAR的概率而取得的共同作者关系。在数据中,用八个4位代码表示作者。 数据从合作双方的学术经历,合作经历的角度提取了特征。例如,如果已知A与B在…

ADV

悦谷首城 我司是专业的房产服务公司,主要从事北京拆迁安置房买卖中介、房屋租赁中介、代办房屋权证、房屋产权过户手续、垫资开发商房款,收拆迁房子指标,房产信息咨询等业务。公司经营上追求规模化、规范化、服务一体化。公司本着“诚信为本…

【Spring源码三千问】Advice、Advisor、Advised都是什么接口?

Advice、Advisor、Advised都是什么接口? 前言版本约定正文Advice、Advisor、Advised 类图AdviceMethodInterceptor AdvisorPointcutAdvisor AdvisedSpring AOP 代理类可以转换为 Advised 类型 小结 前言 在看 Spring AOP 的源码时,经常可以看到 Advice、…

【小家Spring】Spring AOP原理使用的基础类打点(AopInfrastructureBean、ProxyProcessorSupport、Advised、AjType)

每篇一句 没被洪水灌溉过,你怎么能证明这个城市的下水道架构师合理的呢? 相关阅读 【小家Spring】探索Spring AOP中aopalliance的Joinpoint、MethodInvocation、Interceptor、MethodInterceptor… 【小家Spring】Spring AOP原理使用的基础类打点&#x…

Spring AOP名词解释Advice,Pointcut,Advisor,Joinpoint,Advised是什么?

Advice advice解释为通知,需要执行的增强逻辑方法。 advice规范接口如图,分为了before,after等等,为什么没有around呢,因为是通过interceptor实现的。 这里可以看出,AfterAdvice最终会被转换包装成AfterR…

Advised,Advisor,Advice,Pointcut

2019独角兽企业重金招聘Python工程师标准>>> Advised->在Spring中创建了AOP代理之后,就能够使用org.springframework.aop.framework.Advised接口对它们进行管理。 任何AOP代理都能够被转型为这个接口,不论它实现了哪些其它接口 Advisor-&g…

Spring AOP编程官方文档解读之操作Advised对象

Spring AOP编程官方文档解读目录 文章目录 org.springframework.aop.framework.Advised是啥?看一下下面这个类结构图 可以看到无论是ProxyFactoryBean还是ProxyFactory最终都实现了这个接口、这个接口中的方法非常的多,我们随便看一下 public interfac…

arduino知识点梳理(二)——INPUT_PULLUP模式

参考文章1 参考文章2 arduino的引脚模式有三种: INPUT——输入模式OUTPUT——输出模式INPUT_PULLUP——输入上拉模式 Arduino 微控制器自带内部上拉电阻。如果需要使用内部上拉电阻,则应使用pinMode()将引脚设置为输入上拉(INPUT_PULLUP&am…

Pull Up Field(字段上移)

两个子类拥有形同的字段 重构:将该字段移至超类

HAL库 output level 和 pull up/ pull down 的区别

从标准库过来的朋友可能对这两个选型有点分不清除 GPIO output level 即输出模式下初始化后端口的电位(高或低) GPIO Pull-up/Pull-down 即输入模式下的电位,例如按键检测

处理概括关系之一 :Pull Up Field(值域上移)

两个subclasses 拥有相同的值域。 将此一值域移至superclass。 动机(Motivation) 如果各个subclass 是分别开发的,或者是在重构过程中组合起来的,你常会发现它们拥有重复特性,特别是值域更容易重复。这样的值域有时拥有…