首页 > 其他分享 >GDB调试之Core dump分析(二十五)

GDB调试之Core dump分析(二十五)

时间:2024-01-25 15:02:49浏览次数:29  
标签:Core dump core 转储 生成 GDB 文件 include

一、核心转储coredump基础 

Linux core dump:一般称之为核心转储、内核转储,我们统称为转储文件。是某个时刻某个进程的内存信息映射,即包含了生成转储文件时该进程的整个内存信息以及寄存器等信息。转储文件可以是某个进程的,也可以是整个系统的,可以是进程活着的时候生成的,也可以是进程或者系统崩溃的时候自动生成的。为活着的进程创建core dump文件一般可以通过gdb来生成,使用gdb把进程attach进来以后,执行generate-core-file或者gcore命令来生成core dump文件。

为正在运行的程序生成core dump文件:

如何让程序崩溃的时候自动生成core dump文件?

比如Ubuntu 18.04:

  • ulimit -c
  • cat /proc/sys/kernel/core_pattern

比如 Ubuntu 20.04

  • cat /proc/sys/kernel/core_pattern
  • ulimit -c

调试代码如下:

#include <thread>
#include <iostream>
#include <vector>
#include <mutex>
#include <cstring>
using namespace std;
int main()
{

	int *p = 0;
	*p = 10;
	return 0;
}

崩溃时生成的core dump文件:  

core dump文件分析:

 

标签:Core,dump,core,转储,生成,GDB,文件,include
From: https://www.cnblogs.com/TechNomad/p/17987164

相关文章

  • NetCore Identityserver4 客户端配置
    1.客户端模式varclient=newHttpClient();varresponse=client.RequestClientCredentialsTokenAsync(newClientCredentialsTokenRequest{Address="http://localhost:5000/connect/token",......
  • GDB调试之多线程死锁调试(二十四)
    调试代码如下所示:#include<thread>#include<iostream>#include<vector>#include<mutex>usingnamespacestd;mutex_mutex1;mutex_mutex2;intdata1;intdata2;intdo_work_1(){ std::cout<<"线程函数do_work_1开始"<<......
  • Docker启动Nacos报错:Nacos Server did not start because dumpservice bean construct
    一、表象重启服务器之后Docker运行Nacos容器,启动成功,但是外网无法访问。查看了一下Nacos启动日志(dockerlogsnacos容器名)二、分析很明显是数据库配``置问题。。如果是数据库配置的问题,可以着重检查以下信息尤其是MySQL内网Host,查询方式见Docker安装Nacos三、解决我已......
  • Net Core中使用EF Core连接Mysql数据库
    EntityFrameworkCore的前身是微软提供并主推的ORM框架,简称EF,其底层是对ADO.NET的封装。EF支持SQLServer、MYSQL、Oracle、Sqlite等所有主流数据库。首先是使用时的几个模式的整理及其理解:CodeFirst:根据代码自动创建数据库表结构甚至是数据库,可以支持多库开发,代码较少冗余,由......
  • mysqldump备份
     mysql备份:backup_dir='/data/backup/mysql'database_name='dbname'bak_save_days=7dd=`date+%Y-%m-%d-%H-%M-%S`if[!-d$backup_dir];thenmkdir-p$backup_dirfimysqldump--defaults-extra-file=/etc/mypass.txt--flush-logs--sin......
  • EF Core 在实际开发中,如何分层?
    前言:什么是分层?分层就是将EFCore放在单独的项目中,其它项目如Asp.netcorewebapi项目引用它这样的好处是解耦和项目职责的清晰划分,并且可以重用EFCore项目但是也会数据库迁移变得复杂起来Stepbystep步骤创建一个.NET类库项目,项目名字为BooksEFCore引用......
  • NetCore获取文件内容
    1、注入IWebHostEnvironmentprivateIWebHostEnvironment_hostEnvironment;publicFormBaseController(IWebHostEnvironmenthostEnvironment){_hostEnvironment=hostEnvironment;} 2、读取根目录下文件内容(Templates/Index.html)publicasyncTask<IActionRes......
  • EFCore 经验
    注意:EFCore在执行Remove-Migration取消最后一次迁移生成的文件时,先不要更改Config配置文件,否则可能无法执行取消操作当主表和明细表是主从关系时,默认生成时为级联删除,不需要在配置文件中声明publicclassProductionPlanDetailConfig:IEntityTypeConfiguration<Production......
  • K8s集群CoreDNS监控告警最佳实践
    本文分享自华为云社区《K8s集群CoreDNS监控告警最佳实践》,作者:可以交个朋友。一背景coreDNS作为K8s集群中的关键组成部分。主要负责k8s集群中的服务发现,域名解析等功能。如果在使用过程中出现域名解析失败,域名解析超时等情况,需要引起注意。二方案简介可以通过CCE集群插件kub......
  • 【STM32使用Arduino编程0】Arduino_Core_STM32固件的安装和使用
    【STM32使用Arduino编程0】Arduino_Core_STM32固件的安装和使用对于STM32来说,使用Arduino编程可以大大降低编程难度,同时也可以使用Arduino的许多库。Arduino_Core_STM32介绍要使用Arduino对STM32进行编程需要使用相应的固件,目前官方的固件为Arduino_Core_STM32。对应的github......