利用coredump获取程序调用通路

一些前置知识

原文链接:https://blog.csdn.net/tenfyguo/article/details/8159176

一、什么是coredump

        我们经常听到大家说到程序core掉了,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢?下面会分析)会产生一个叫做core的文件。

        通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工作当前状态存储生成第一个文件,许多的程序出错的时候都会产生一个core文件,通过工具分析这个文件,我们可以定位到程序异常退出的时候对应的堆栈调用等信息,找出问题所在并进行及时解决。


二、coredump文件的存储位置

   core文件默认的存储位置与对应的可执行程序在同一目录下,文件名是core,大家可以通过下面的命令看到core文件的存在位置:

   cat  /proc/sys/kernel/core_pattern

   缺省值是core

三、快速获取调用通路

在需要产生coredump的位置加入会引起程序崩溃的代码,比如

int*p=NULL;
int a=*p;

在执行程序前执行命令

sudo echo '/var/crash/coredumps/core.%e.%p.%t'>/proc/sys/kernel/core_pattern
ulimit -c unlimited

执行代码,程序会崩溃退出,此时的coredump存储在/var/crash/coredumps下

执行gdb查看coredump文件

# gdb 可执行文件  coredump文件
# 比如
gdb /data/app /var/crash/coredumps/core.23342.435454

进入gdb后等待输入框出现,执行bt查看堆栈情况即可查看函数调用通路

#0 0x000002434ff in Func at /data/app/fun.cpp……………………#28 0x28282882828 in main at /data/app/main.cpp

#0是发生coredump的函数,#28(最后一个)是执行入口,一般是main函数。

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

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

相关文章

MUNIK解读CMMI-带你认识什么是CMMI

1、什么是CMMI? CMMI是Capability Maturity Model Integration(能力成熟度模型集成)的简称,用于评估软件开发商的质量和能力。CMMI模型最初为美国国防部创建,后被广泛应用于其他领域,通过一整套过程改进实践&#xf…

uniapp自定义富文本现实组件(支持查看和收起)

废话不多说上代码 CollapseText.vue <template><view v-if"descr"><scroll-view class"collapse-text" :style"{maxHeight: computedMaxHeight}"><!-- <slot></slot> --><rich-text :nodes"descr&q…

【力扣 896】单调数列 C++题解(循环)

如果数组是单调递增或单调递减的&#xff0c;那么它是 单调 的。 如果对于所有 i < j&#xff0c;nums[i] < nums[j]&#xff0c;那么数组 nums 是单调递增的。 如果对于所有 i < j&#xff0c;nums[i]> nums[j]&#xff0c;那么数组 nums 是单调递减的。 当给定…

2-网页请求的原理

网页请求的原理 ​ 网络爬虫请求网页的过程可以理解为用户使用浏览器加载网页的过程&#xff0c;这个过程其实是向Web服务器发送请求的过程&#xff0c;即浏览器向Web服务器发送请求&#xff0c;Web服务器会将响应内容以网页形式返回给浏览器。因此&#xff0c;了解浏览器与We…

C语言 求球反弹的距离和高度

这个程序计算一个球从 100 米高度自由落下&#xff0c;并在第 10 次落地时经过的总距离及第 10 次反弹的高度。 #include <stdio.h>int main() {int n 10;double height 100.0;double totalDistance height;for (int i 1; i < n; i) {height / 2;totalDistance …

Android Studio下载Gradle特别慢,甚至超时,失败。。。解决方法

使用Android studio下载或更新gradle时超级慢怎么办&#xff1f; 切换服务器&#xff0c;立马解决。打开gradle配置文件 修改服务器路径 distributionUrlhttps\://mirrors.cloud.tencent.com/gradle/gradle-7.3.3-bin.zip 最后&#xff0c;同步&#xff0c;下载&#xff0c;速…

数据融合工具(1)指定路径下同名图层合并

情景再现&#xff0c;呼叫小编 ————数据合并时&#xff0c;你是否也经常碰到这些情况&#xff1f; 数据存在几何错误&#xff0c;合并失败&#xff01; 数据字段类型不一致&#xff0c;合并失败&#xff01; 合并工具运行有警告信息&#xff0c;不知道是否合并成功&…

2024年中国网络安全市场全景图 -百度下载

是自2018年开始&#xff0c;数说安全发布的第七版全景图。 企业数智化转型加速已经促使网络安全成为全社会关注的焦点&#xff0c;在网络安全边界不断扩大&#xff0c;新理念、新产品、新技术不断融合发展的进程中&#xff0c;数说安全始终秉承科学的方法论&#xff0c;以遵循…

航模插头篇

一、常见的电池插头&#xff08;电调端 是公头 电池端 是母头&#xff09; 电池总是被插的 1.XT60头 过流大 安全系数高 难插拔 2.T插 插拔轻松 过流比较小 容易发烫 电调端 是公头 电池端 是母头 3.香蕉头插孔 过流够 插拔轻松 但 容易插反 爆炸 4.TX90(和XT60差…

如何在Java中实现全文搜索功能

如何在Java中实现全文搜索功能 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 全文搜索是现代应用程序中常见的需求&#xff0c;特别是在需要对大量文本数据进…

完整篇-Python数据类型转换

目录 1、「整数到浮点数」&#xff1a; 2、「浮点数到整数」&#xff1a; 3、「字符串到整数」&#xff1a; 4、「字符串到浮点数」&#xff1a; 5、「整数到字符串」&#xff1a; 6、「浮点数到字符串」&#xff1a; 7、「布尔值到整数」&#xff1a; 8、「列表到元组…

数据赋能(138)——开发:数据映射——技术方法、主要工具

技术方法 数据映射的技术方法主要包括以下几种&#xff1a; 手工法&#xff1a; 手工法涉及开发人员手动编码数据源和目标架构之间的链接。这通常使用如XSLT这样的计算机语言来编写代码&#xff0c;将XML文档翻译成各种格式。然而&#xff0c;随着数据系统的扩展和复杂化&…

11-阿里云服务器 ECS-FileZilla的文件传输

FileZilla的下载与安装以及简单使用(有图解超简单)-CSDN博客 Windows下 FileZilla客户端下载与安装 官方下载地址:https://www.filezilla.cn/download 绿色版我们可以理解为免安装版本,而安装版本则是需要运行Setup的引导程序,最大的区别就是会不会生成注册表。 filezi…

Running cmake version 2.8.12.2解决方案

Centos7安装mysql8.0&#xff0c;编译环节出现如下报错&#xff1a; Running cmake version 2.8.12.2 CMake Warning at CMakeLists.txt:82 (MESSAGE):Please use cmake3 rather than cmake on this platform-- Please install cmake3 (yum install cmake3) CMake Error at CMa…

哪些算法使用了 树 数据结构

树数据结构在计算机科学中非常常见&#xff0c;许多算法使用了树数据结构来解决各种问题。以下是一些常见的算法和应用&#xff1a; 1. **二叉搜索树 (Binary Search Tree, BST)**&#xff1a; - 插入 (Insertion) - 查找 (Search) - 删除 (Deletion) 2. **平衡树**…

通过一个单相逆变器仿真深度学习PR控制器

目录 前言 ​编辑 PR控制器的理论 PR控制器不同表达式及其建模 PR控制器连续积分组合及模型 PR控制器连续传递函数及模型 PR控制器离散积分及模型 PR控制器离散传递函数及模型 PR控制器差分方程及模型 系统仿真效果 总结 前言 在项目开发中常用PI控制器&#xff0c;这次在…

VBA 正则表达式初体验

VBA 正则表达式初体验 Option ExplicitSub demo()Dim i As Long, j As Long, k As Long, s As StringDim reg1 As Object, matches1 As Object, mch1 As ObjectDim reg2 As Object, matches2 As Object, mch2 As ObjectDim allBonus As Stringi 6s Range("a1").Va…

Symfony文件上传功能实现:打造强大而安全的Web应用

Symfony文件上传功能实现&#xff1a;打造强大而安全的Web应用 Symfony是一个高度灵活的PHP Web框架&#xff0c;用于创建快速、安全且易于维护的Web应用。文件上传是Web开发中的常见需求&#xff0c;Symfony提供了一套简单而强大的方法来处理文件上传。本文将详细介绍如何在S…

深入探索PHP中的多维数组:构建复杂数据结构的艺术

深入探索PHP中的多维数组&#xff1a;构建复杂数据结构的艺术 引言 在PHP开发中&#xff0c;数组&#xff08;Array&#xff09;是一种非常重要的数据类型&#xff0c;它允许我们存储多个值&#xff0c;并且这些值可以是不同类型的。而多维数组&#xff08;Multidimensional …

BeanUtils拷贝List数据

工具类&#xff1a; package com.ssdl.baize.pub;import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.List; import java.util.function.Supplier; import org.springframework.beans.BeanUtils;public class BeanConvertUti…