Ubuntu22.04设置程序崩溃产生Core文件

头图

Ubuntu22.04设置程序崩溃产生Core文件

文章目录

  • Ubuntu22.04设置程序崩溃产生Core文件
    • 摘要
    • Ubuntu 生成Core文件配置
      • 1. 检查 core 文件大小限制
      • 2. 设置 core 文件大小限制
      • 3. 配置 core 文件命名和存储路径
      • 4. 重启系统或重新加载配置
      • 5. 测试配置

关键字: UbuntuCoreCrash崩溃程序

摘要

最近程序总是崩溃,解决又毫无头绪,Windows下试尽各种工具都没法定位,只能将代码编译到Linux平台下尝试定位。今天就先研究下如何让程序崩溃是产生Core文件。

Ubuntu 生成Core文件配置

在 Ubuntu 系统中,配置程序崩溃时生成 core 文件通常涉及以下几个步骤:

1. 检查 core 文件大小限制

首先,你需要检查当前系统对 core 文件大小的限制。可以使用 ulimit 命令来查看和修改这个限制。

ulimit -c

如果输出为 0,表示当前没有设置生成 core 文件。

2. 设置 core 文件大小限制

你可以使用 ulimit 命令来设置 core 文件的大小限制。例如,设置为无限制:

ulimit -c unlimited

或者设置一个具体的大小,如 1024 MB:

ulimit -c 1024

注意,ulimit 命令的设置通常只在当前 shell 会话中有效。如果你希望永久生效,需要将设置添加到用户的 shell 配置文件中,如 ~/.bashrc~/.bash_profile

echo "ulimit -c unlimited" >> ~/.bashrc
source ~/.bashrc

3. 配置 core 文件命名和存储路径

默认情况下,core 文件可能会被存储在程序运行的当前目录下,并且命名可能不具有描述性。你可以通过修改 /proc/sys/kernel/core_pattern 来配置 core 文件的命名和存储路径。

例如,将 core 文件存储在 /var/cores/ 目录下,并使用程序名和进程ID来命名:

echo "|/usr/bin/sudo tee /var/cores/core.%e.%p" > /proc/sys/kernel/core_pattern

这里使用了管道符号 | 和一个命令,这个命令会将 core 文件的内容通过管道传递给 sudo tee 命令,从而将 core 文件写入到指定的路径。%e%p 是格式化字符,分别代表程序名和进程ID。

4. 重启系统或重新加载配置

对于某些更改,可能需要重启系统或重新加载配置才能生效。对于 ulimit 的更改,通常只需要重新登录或重新加载 shell 配置文件。对于 /proc/sys/kernel/core_pattern 的更改,可能需要重启系统。

5. 测试配置

为了测试配置是否生效,你可以故意触发一个程序崩溃。例如,编写一个简单的 C 程序,其中包含一个除以零的操作:

#include <stdio.h>int main() {int a = 1;int b = 0;printf("%d\n", a / b);return 0;
}

编译并运行这个程序:

gcc -o crash_test crash_test.c
./crash_test

如果配置正确,你应该会在指定的路径下找到生成的 core 文件。

通过以上步骤,你可以在 Ubuntu 系统中配置程序崩溃时生成 core 文件,以便于调试和分析程序崩溃的原因。


博客签名2021

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

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

相关文章

Dubbo底层RPC原理深度解析

Dubbo作为一款高性能的分布式服务框架&#xff0c;其核心在于其底层的RPC实现&#xff0c;它允许服务在分布式系统中的不同节点间透明地进行远程调用。以下是Dubbo底层RPC原理的详细介绍&#xff1a; 基本概念 RPC&#xff08;Remote Procedure Call&#xff09;是一种编程模型…

CSS浮动详细教学(CSS从入门到精通学习第四天)

css第04天 一、其他样式 1、圆角边框 在 CSS3 中&#xff0c;新增了圆角边框样式&#xff0c;这样我们的盒子就可以变圆角了。 border-radius 属性用于设置元素的外边框圆角。 语法&#xff1a; border-radius:length; 参数值可以为数值或百分比的形式如果是正方形&…

js 如何封装一个iframe通讯的sdk

在JavaScript中&#xff0c;封装一个用于iframe间通信的SDK&#xff0c;可以利用postMessage和message事件监听来实现跨域通信。以下是一个简单的示例&#xff0c;展示如何封装这样一个SDK&#xff1a; 步骤 1: 创建SDK文件 首先&#xff0c;创建一个名为IframeCommunicator.…

RTT UART设备框架学习

UART简介 UART&#xff08;Universal Asynchronous Receiver/Transmitter&#xff09;通用异步收发传输器&#xff0c;UART 作为异步串口通信协议的一种&#xff0c;工作原理是将传输数据的每个字符一位接一位地传输。是在应用程序开发过程中使用频率最高的数据总线。 UART串…

MySQL注入 — Dns 注入

DNS注入原理 通过子查询&#xff0c;将内容拼接到域名内&#xff0c;让load_file()去访问共享文件&#xff0c;访问的域名被记录此时变为显错注入,将盲注变显错注入,读取远程共享文件&#xff0c;通过拼接出函数做查询,拼接到域名中&#xff0c;访问时将访问服务器&#xff0c;…

CISP难度将加大?还考不考啊...

最新消息&#xff1a;CISP即将调整知识体系大纲&#xff0c;更新题库&#xff0c;后续考试难度加大。 最近几年&#xff0c;CISP改版地比较频繁&#xff0c;难度也在不断上升&#xff0c;因此各位小伙伴有考CISP想法的尽早考。 随着《网络安全法》、《网络空间安全战略》、《…

2024/5/28 P1247 取火柴游戏

取火柴游戏 题目描述 输入 k k k 及 k k k 个整数 n 1 , n 2 , ⋯ , n k n_1,n_2,\cdots,n_k n1​,n2​,⋯,nk​&#xff0c;表示有 k k k 堆火柴棒&#xff0c;第 i i i 堆火柴棒的根数为 n i n_i ni​&#xff1b;接着便是你和计算机取火柴棒的对弈游戏。取的规则如下&…

定点化和模型量化(三)

量化解决的是训练使用的浮点和运行使用的硬件只支持定点的矛盾。这里介绍一些实际量化中使用到的工具。 SNPE简介 The Snapdragon Neural Processing Engine (SNPE)是高通骁龙为了加速网络模型设计的框架。但它不只支持高通&#xff0c;SNPE还支持多种硬件平台&#xff0c;AR…

Beego 使用教程 8:Session 和 Cookie

beego 是一个用于Go编程语言的开源、高性能的 web 框架 beego 被用于在Go语言中企业应用程序的快速开发&#xff0c;包括RESTful API、web应用程序和后端服务。它的灵感来源于Tornado&#xff0c; Sinatra 和 Flask beego 官网&#xff1a;http://beego.gocn.vip/ 上面的 be…

抄表营收系统是什么?

1.抄表营收系统的概念和功能 抄表营收系统是一种自动化软件&#xff0c;主要运用于公用事业公司(如电力工程、水、天然气等)管理方法其服务的计量检定、计费和收付款全过程。该系统根据集成化智能仪表、远程控制数据收集和分析功能&#xff0c;提高了效率&#xff0c;降低了人…

(十)Python3 接口自动化测试,测试结果发送邮件

(十)Python3 接口自动化测试,测试结果发送邮件 1.前言 Windows本地执行的话,可自行编写发送邮件方法发送邮件。 Jenkins执行的话,可用jenkins配套邮件发送邮件。 2.发送邮件示例 # -*- coding: utf-8 -*- # 主程序 import sys sys.path.append(./server) sys.path.appe…

人脸识别——探索戴口罩对人脸识别算法的影响

1. 概述 人脸识别是一种机器学习技术&#xff0c;广泛应用于各种领域&#xff0c;包括出入境管制、电子设备安全登录、社区监控、学校考勤管理、工作场所考勤管理和刑事调查。然而&#xff0c;当 COVID-19 引发全球大流行时&#xff0c;戴口罩就成了日常生活中的必需品。广泛使…

反射机制大揭秘-进阶Java技巧,直击核心!

反射在Java中扮演着重要的角色&#xff0c;掌握了反射&#xff0c;就等于掌握了框架设计的钥匙。本文将为您逐步讲解反射的基本概念、获取Class对象的三种方式、使用反射实例化对象并操作属性和方法&#xff0c;还有解析包的相关内容。跟随我一起探索反射的奥秘&#xff0c;提升…

使用 Ubuntu + Docker + Vaultwarden + Tailscale 自建密码管理器

使用 Ubuntu Docker Vaultwarden Tailscale 自建密码管理器 先决条件 一台运行 Ubuntu 系统的服务器。可以是云提供商的 VPS、家庭网络中的树莓派、或者 Windows 电脑上的虚拟机等等 一个 Tailscale 账户。如果还没有 Tailscale 账户&#xff0c;可以通过此链接迅速创建一个…

SelfKG论文翻译

SelfKG: Self-Supervised Entity Alignment in Knowledge Graphs SelfKG&#xff1a;知识图中的自监督实体对齐 ABSTRACT 实体对齐旨在识别不同知识图谱&#xff08;KG&#xff09;中的等效实体&#xff0c;是构建网络规模知识图谱的基本问题。在其发展过程中&#xff0c;标…

华纳云:MAC电脑怎么远程连接Windows服务器桌面?

在Mac电脑上远程连接Windows服务器桌面可以通过多种方式实现&#xff0c;最常用的方法是使用微软提供的免费应用程序 "Microsoft Remote Desktop"。以下是详细的步骤来设置和使用该工具&#xff1a; 步骤一&#xff1a;下载和安装 Microsoft Remote Desktop 打开App …

SpringBoot的自动装配

我们今天再来说一下关于 SpringBoot 的自动装配&#xff0c;为什么会有这样的问题呢&#xff1f;一般这种情况都是在面试的过程中&#xff0c;面试官有时候会问到这个问题&#xff0c;就比如从开始问SpringBoot 的一些常用注解&#xff0c;到SpringBoot的一些特性&#xff0c;然…

zynq之UART

之前尝试UART0&#xff08;MIO50、51&#xff09;&#xff0c;串口调试助手收到发送的内容。 现在板子上EMIO端有多个串口&#xff0c;所以看看这个怎么弄。 串口是484的转接板&#xff08;接232的串口就会输出乱码&#xff09; https://blog.51cto.com/u_15262460/2882973 …

【九十三】【算法分析与设计】719. 找出第 K 小的数对距离,N 台电脑的最长时间,二分答案法

719. 找出第 K 小的数对距离 - 力扣&#xff08;LeetCode&#xff09; 数对 (a,b) 由整数 a 和 b 组成&#xff0c;其数对距离定义为 a 和 b 的绝对差值。 给你一个整数数组 nums 和一个整数 k &#xff0c;数对由 nums[i] 和 nums[j] 组成且满足 0 < i < j < nums.le…

java调用远程接口下载文件

在postman中这样下载文件 有时下载文件太大postman会闪退&#xff0c;可以通过代码下载&#xff0c;使用hutool的http包