Linux上开启coredump

news2024/11/18 18:43:45

Linux上开启core dump

  • Core dump(核心转储)是在程序崩溃时生成的一种文件,其中包含了程序在崩溃时的内存状态信息。它可以帮助程序员在调试程序时快速定位问题,并且是一种非常有用的调试工具。
  • core dump的作用如下:
    • 帮助调试崩溃问题:当程序崩溃时,生成的 core dump 文件可以帮助程序员快速定位问题,因为它包含了崩溃时的内存状态信息,包括变量值、函数调用栈等等。
    • 分析内存泄漏:core dump 文件可以用来检查内存泄漏,因为它包含了程序在崩溃时的内存状态信息,可以分析哪些内存没有被释放。
    • 帮助复现问题:有时候程序崩溃是难以复现的,生成 core dump 可以帮助程序员在不同的环境中重现问题,以便更好地调试。
    • 支持故障排除:当程序出现故障时,生成 core dump 可以帮助程序员快速找到问题的原因,以便更快地解决问题。
  • 检查core dump配置
ulimit -a

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sNnOVc09-1684328602299)(D:\学习\学习笔记\图片\114.png)]

其中,core file size 指定了 core dump 文件的最大大小,core dump file name 指定了 core dump 文件的名称模板,unlimited 表示不限制。

  • 设置 core dump 文件的最大大小
ulimit -c unlimited

如果系统默认的 core dump 文件大小不够大,可以设置core dump的大小,这将设置 core dump 文件的最大大小为无限制。

  • 检查系统的 core dump 配置是否生效
ulimit -a

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eg06RHmQ-1684328602301)(D:\学习\学习笔记\图片\115.png)]

  • 设置 core dump 文件保存路径和文件名
sudo sh -c 'echo "/data/logs/core/core.%e.%p.%t" > /proc/sys/kernel/core_pattern'

/data/logs/core/ 是 core dump 文件的保存路径;core.%e.%p.%t是保存的文件名。

  • 开启core dump
echo '1' > /proc/sys/kernel/core_uses_pid

echo '1' > /proc/sys/fs/suid_dumpable
  • 测试 core dump 配置

可以编写一个简单的 C 语言程序,让它崩溃并生成 core dump 文件。以下是一个示例程序:

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>

void signal_handler(int sig) {
    printf("Received signal %d\n", sig);
    abort();
}

int main(int argc, char *argv[]) {
    signal(SIGSEGV, signal_handler);
    char *ptr = NULL;
    *ptr = 'a';
    return 0;
}

编译程序:

gcc -g -o test test.c

运行程序,生成core_dump

./test
  • 分析 core dump 文件
gdb test /path/to/core/dumps/<core dump file>
./test
  • 分析 core dump 文件
gdb test /path/to/core/dumps/<core dump file>

test 是程序的可执行文件,/path/to/core/dumps/<core dump file> 是生成的 core dump 文件。使用 gdb 工具可以分析 core dump 文件,查看程序崩溃的原因。

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

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

相关文章

Java面向对象程序设计实验报告(实验二 面向对象基础练习)

✨作者&#xff1a;命运之光 ✨ 专栏&#xff1a;Java面向对象程序设计实验报告 目录 ✨一、需求设计 ✨二、概要设计 ✨三、详细设计 ✨四、调试结果 ✨五、测试结果 ✨附录&#xff1a;源程序代码&#xff08;带注释&#xff09; 测试类demo2 Address类 Employee类…

Docker之DockerFile相关基础知识

DockerFile相关基础知识 一、Docker镜像原理1、操作系统组成部分1.1 七大子系统1.2 Linux文件系统 2、Docker镜像原理介绍2.1 原理图2.2 Docker镜像本质2.3 统一文件系统2.4 复用性2.5 统一性 二、容器转为镜像1、Docker镜像的制作1.1 容器转换为镜像1.2 镜像转为压缩文件1.3 导…

【SpringBoot】三:访问数据库

文章目录 1.DataSource2.JdbcTemplate2.1 准备环境2.2 准备表和数据2.3 配置数据源2.4 JdbcTemplate访问mysql2.5 创建实体类 ArticlePO2.6 测试2.6.1 测试聚合函数 3.mybatis3.1 单表CRUMD3.1.1 创建模块3.1.2 查询3.1.3 插入3.1.4 更新3.1.5 删除 3.2 ResultMap3.3 SQL 提供者…

Elasticsearch 集群部署管理

Elasticsearch 集群配置版本均为8以上 安装前准备 CPU 2C 内存4G或更多 操作系统: Ubuntu20.04,Ubuntu18.04,Rocky8.X,Centos 7.X 操作系统盘50G 主机名设置规则为nodeX.qingtong.org 生产环境建议准备单独的数据磁盘主机名 #各自服务器配置自己的主机名 hostnamectl set-ho…

【2023/05/17】smalltalk

Hello&#xff01;大家好&#xff0c;我是霜淮子&#xff0c;2023倒计时第12天。 Share His own morning are new surprises to God. 译文&#xff1a; 神自己的清晨&#xff0c;在他自己看来也是新奇的。 Life finds its wealth by the claims of the world,and its worth…

基于UIAutomation+Python+Unittest+Beautifulreport的WindowsGUI自动化测试框架

1 main.py主入口 # -*- coding:utf-8 -*- # 作者&#xff1a;虫无涯 # 日期&#xff1a;2023/2/17 # 文件名称&#xff1a;main.py # 作用&#xff1a;框架的主入口函数# codingutf-8import time from common.reportOut import report_out from common.logOut import log_out …

Wandb.init和wandb.sweep的使用准则

目录 在使用 wandb.init() 初始化函数时&#xff0c;你可以包含以下信息&#xff1a; 如果在同一个代码中多次调用 wandb.init()&#xff0c;可能会导致以下问题&#xff1a; 如果你在一个大文件中使用了 wandb.init()&#xff0c;并且想在其他小文件中使用 wandb.log() 来记…

docker-compose部署sonarqube开源代码审计和分析平台

生成文件夹 mkdir -p /docker/sonar/postgres/postgresql mkdir -p /docker/sonar/postgres/datamkdir -p /docker/sonar/sonarqube chmod 777 -R /docker/sonar/sonarqube echo "vm.max_map_count262144" > /etc/sysctl.conf sysctl -p 创建docker-compose.yml文…

Kuberentes,k8s诞生简介

一、前言 什么是k8s&#xff1f; Kuberentes 是基于容器的集群管理平台&#xff0c;它的简称&#xff0c;是K8S。有人说之所以叫k8s&#xff0c;是因为k到s中间有8个字母&#xff0c;因此叫k8s&#xff0c;也有人说&#xff0c;在使用k8s的安装配置流程中&#xff0c;共分为8…

6年测开经验面试十家大厂,整理出来的笔记...

我第一次接触自动化是在2016年。那时刚毕业一年有余&#xff0c;组内一直做手工功能测试&#xff0c;大概在2018年9月&#xff0c;部门领导要求测试组引入自动化。组内之前从没有开展过任何自动化&#xff0c;测试主管安排了一个刚入职不久的研究生同事去研究。 当时自己内心还…

STM32独立按键扫描,支持同时按下、长按、快速键值

背景 有个项目在实际应用中&#xff0c;采用8个独立按键&#xff0c;每个按键都赋予不同功能&#xff0c;实际使用过程中很多时候都是需要比较特殊的按键操作&#xff0c;例如&#xff1a;长按10s按键、长按5s按键&#xff0c;或者长按需要有快速按键值的反馈&#xff0c;这个…

wordcloud背景图多图形演示

文章目录 前言一、问题二、多图层1.部分重叠1.1背景图1.2词云图 2.完全重叠2.1背景图2.2词云图 3.不重叠3.1背景图3.2词云图 三、不同形状1.背景图2.词云图 四、代码总结 前言 大家好&#xff0c;我是空空star&#xff0c;本篇给大家分享一下wordcloud背景图多图形演示。 一、问…

网络安全真的那么好吗?

近几年&#xff0c;随着网络安全被列为国家安全战略的一部分&#xff0c;这个曾经细分的领域发展提速了不少&#xff0c;除了一些传统安全厂商以外&#xff0c;一些互联网大厂也都纷纷加码了在这一块的投入&#xff0c;随之而来的吸引了越来越多的新鲜血液不断涌入。 网络安全…

多源环境(QGIS\PostgreSQL\ARCGIS\MAXENT\R语言)支持下的SolVES 模型生态系统服务功能社会价值评估

生态系统服务是人类从自然界中获得的直接或间接惠益&#xff0c;可分为供给服务、文化服务、调节服务和支持服务4类&#xff0c;对提升人类福祉具有重大意义&#xff0c;且被视为连接社会与生态系统的桥梁。自从启动千年生态系统评估项目&#xff08;Millennium Ecosystem Asse…

Python自动化测试实现的思路及方法

Python自动化测试常用于Web应用、移动应用、桌面应用等的测试 Python自动化实现思路通常分为以下几步&#xff1a; 1. 确定自动化测试的范围和目标&#xff1a; 首先需要明确需要进行自动化测试的范围和目标&#xff0c;包括测试场景、测试用例、测试数据等。 2. 选择自动化测…

Kubernetes第2天

第四章 实战入门 本章节将介绍如何在kubernetes集群中部署一个nginx服务&#xff0c;并且能够对其进行访问。 Namespace ​ Namespace是kubernetes系统中的一种非常重要资源&#xff0c;它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。 ​ 默认情况下&…

机器学习——决策树原理及CART算法

问&#xff1a;CART决策树可以有多个分支结构。 答&#xff1a;错误。CART决策树每个内部节点只能有两个分支结构&#xff0c;这些分支分别对应于二进制判定的是或否。因此&#xff0c;CART决策树的每个节点将数据集分成两个较小的子集&#xff0c;其中一个子集满足某种特定条…

【系分知识】需求评审

目录 背景介绍标题目的与意义方法与流程成果展示 背景介绍 软件开发是一项复杂的工作&#xff0c;需要涉及到众多的人员和团队。在这个过程中&#xff0c;需求评审是保证项目质量和进度的关键环节。它是在项目启动之前&#xff0c;对所有的需求进行全面的评估和审查&#xff0c…

C#异步编程之数据并行及任务并行

基于Parallel.ForEach的数据并行使用 1.数据非并行 var items new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; DateTime t1 DateTime.Now; foreach (var item in items) {Console.WriteLine("数据非并行输出:{0}", item); } 2.数据并行,只要使用Parallel.ForEach P…

Unity UI -- (2) 给场景加一个标题

添加Text并将其放到正中位置 我们来增加项目的第一个UI元素&#xff1a;标题。 1. 在Hierarchy中&#xff0c;点击右键&#xff0c;选择UI > Text - TextMeshPro。如果弹出了一个TextMeshPro Importer窗口&#xff0c;选择Import TMP Essentials。TextMeshPro&#xff08;TM…