Linux遇到Aborted (core dumped)

2023-05-16

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的详细错误原因

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux遇到Aborted (core dumped) 的相关文章

随机推荐

  • 怎么通过SQL取出数据库中JSON字段中的值

    我们的数据库中经常会遇到很多JSON的字段 xff0c 自己写的也好 xff0c 别人写的也好 一般我们取这个值的话 xff0c 会创建一个typeHandler来取值 那么如果我们想直接取到JSON里的值该怎么办呢 xff1f 其实很简单
  • GCC使用说明

    超详细的参考官方手册下载地址 https download csdn net download qq 34991787 16188604 GCC代表 GNU编译器合集 可编译C C 43 43 Objective C Objective C
  • 用顺序表实现的简易通讯录(第一版)

    实现一个通讯录 xff1b 通讯录可以用来存储1000个人的信息 xff0c 每个人的信息包括 xff1a 姓名 性别 年龄 电话 住址 提供方法 xff1a 1 添加联系人信息 2 删除指定联系人信息 3 查找指定联系人信息 4 修改指定
  • ubuntu没有rc.local文件

    当我们设置开机自启时候 xff0c 一般都在rc local文件里设置 xff0c 但是有的Ubuntu版本没有这个文件 了 xff0c 此时我们可以自己创建一个 1 创建一个rc local service文件 sudo vim etc
  • 阿里云快速网站搭建详解

    一 网站建站流程 主要步骤 要有一个域名 购买主机 要有数据库 一般购买主机赠送 解析域名 下载网站程序 演示用的WordPress 上传程序 安装程序 配置数据库 网站基本信息 管理员信息等 二 DNS服务器快速入门 DNS服务概述 DN
  • OpenStack ussuri 私有云平台搭建

    一 OpenStack简介 openstack是一个云操作系统 这个操作系统控制着数据中心中的计算 存储和网络资源 所有这些资源的管理都是通过API来来实现的 并且管理资源都有相应的认证机制 在openstack中有一个叫做dashboar
  • 重磅!阿里版本【ChatGPT】开放测评!

    前两天突然爆出惊人消息 xff1a 阿里版ChatGPT开放测评了 xff01 在本月初 xff0c 已经有诸多关于阿里巴巴即将推出类似ChatGPT产品的传闻 数日前 xff0c 首批曝光的天猫精灵 鸟鸟分鸟 脱口秀版GPT基于大型模型的
  • debian-dhcp实验(傻瓜教程)

    安装apt get install y isc dhcp server 我这里已经安装过了 我们尝试启动服务端 xff0c 发现失败了 xff0c 这里因为我们没有绑定网卡 看一下网卡 我这是ens33 为了防止配置dhcp影响我的外网 x
  • 如何免费使用ChatGPT 4?

    自从ChatGPT发布以来 xff0c 它就取得了巨大的成功 无论是常春藤法学考试还是商学院作业 xff0c ChatGPT都被用于各种试验 统计数据显示 xff0c ChatGPT每月吸引约9600万用户 随着ChatGPT的巨大成功 x
  • 利用ChatGPT,一分钟制作思维导图

    大家好 xff0c 我是易安 xff01 今天我来教你如何使用ChatGPT xff0c 一分钟制作出一份思维导图 大纲选题 想到一个课题 xff0c 然后人工梳理出内容大纲 xff0c 是个挺费精力的事情 但利用ChatGPT来做这件事
  • 谈谈几种分布式锁实现

    大家好 xff0c 我是易安 xff01 今天我们呢谈一谈常见的分布式锁的几种实现方式 什么是分布式锁 在JVM中 xff0c 在多线程并发的情况下 xff0c 我们可以使用同步锁或Lock锁 xff0c 保证在同一时间内 xff0c 只能
  • 十分钟教你搭建类似ChatGPT的安卓应用程序

    大家好 xff0c 我是易安 xff01 Chat GPT 是当今著名的人工智能工具 xff0c 就像聊天机器人一样 Chat GPT会回答发送给它的所有查询 今天 xff0c 我将通过集成 OpenAI API ChatGPT 构建一个简
  • 十分钟教你搭建ChatGPT 图片生成的安卓应用

    十分钟教你搭建ChatGPT 图片生成的安卓应用 大家好 xff0c 我是易安 xff01 今天 xff0c 我们将集成 OpenAI API ChatGPT 来构建一个简单的类似 ChatGPT 的 android 应用程序 xff0c
  • 华为Java社招面试(已拿到offer)

    华为Java社招面试 xff08 已拿到offer xff09 之前8月底华为cloudsop部门打电话叫我要不要面试 xff0c 当时正处于换工作的期间 xff0c 于是就把简历发给华为hr xff0c 人事审核后经过一些列面试 机试 x
  • ubuntu 命令行编译qt程序

    关于在ubuntu安装qt可以参考正点原子的 I MX6U Qt交叉编译环境搭建V1 0 文档教程 xff0c 本文的最终目的是实现在ubuntu的命令终端中编译qt程序 从ubuntu的终端输入命令 xff1a qmake v xff0c
  • ubuntu 16.04 在使用apt-get install命令时出现:下列软件包有未满足的依赖关系错误

    1 出现错误的命令 xff1a sudo apt get install dpkg 2 出现的错误信息 xff1a 您可能需要运行 apt get f install 来纠正下列错误 xff1a 下列软件包有未满足的依赖关系 xff1a c
  • 输入两个正整数m和n,求其最大公约数和最小公倍数

    思路分析 xff1a 在循环中 xff0c 只要除数不等于0 xff0c 用较大数除以较小的数 xff0c 将小的一个数作为下一轮循环的大数 xff0c 取得的余数作为下一轮循环的较小的数 xff0c 如此循环直到较小的数的值为0 xff0
  • Latex中插入图片

    1 Latex的插图 在Latex中使用插图一般有两种方式 xff0c 一种是插入事先准备好的图片 xff0c 另一种是使用Latex代码直接在文档中画图 我们一般常见的使用都是第一种 xff0c 准备好图片 xff0c 然后直接插入在我们
  • debian部署docker(傻瓜式)

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 debian10部署docker debian10部署docker xff08 傻瓜式 xff09 一 准备工作二 使用 APT 安装 x
  • Linux遇到Aborted (core dumped)

    1 问题描述 或出现 xff1a 2 关于Core Dump的分析 2 1 什么是Core Dump Core的意思是内存 Dump的意思是扔出来 堆出来 在开发 xff08 或使用 xff09 一个程序时 xff0c 有时程序莫名其妙的d