CoreDump追踪

article/2025/10/23 13:23:42

当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成“核心转储”)。我们可以认为 core dump是“内存快照”,但实际上,除了内存信息之外,还有些关键的程序运行状态也会同时 dump 下来,例如寄存器信息(包括程序指针、栈指针等)、内存管理信息、其他处理器和操作系统状态和信息。core dump 对于编程人员诊断和调试程序是非常有帮助的,因为对于有些程序错误是很难重现的,例如指针异常,而core dump文件可以再现程序出错时的情景。 

1、开启关闭coreDump

ulimit -c     //查看是否打开此选项,若为0则为关闭;
ulimit -c 0  //手动关闭
ulimit -c 1000    //设置core文件大小最大为1000k

ulimit -c unlimited  //设置core文件大小为不限制大小

2、修改core文件的名称和生成路径
       默认生成的core文件保存在可执行文件所在的目录下,文件名为core,新的core文件生成将覆盖原来的core文件。       

 echo "/usr/data/core-%-%p-%t" > /proc/sys/kernel/core_pattern

程序崩溃后会在/usr/data目录下生成文件core-命令-pid-时间戳。

core_pattern接受的是core文件名称的pattern,它包含任何字符串,并且用%作为转移符号生成一些标示符,为core文件名称加入特殊含义。已定义的标示符有如下这些:

  1. %%:相当于%
  2. %p:相当于<pid>
  3. %u:相当于<uid>
  4. %g:相当于<gid>
  5. %s:相当于导致dump的信号的数字
  6. %t:相当于dump的时间
  7. %e:相当于执行文件的名称
  8. %h:相当于hostname

3、修改core文件的名称和生成路径 (通过代码)

#include <sys/resource.h>
int main()
{/*设置路径,不设置有个默认路径*/string str = "echo '";str += "/usr/data/core";str += "' > /proc/sys/kernel/core_pattern";int n = system(str.toAscii().data());if(n != 0){cout<<"Core文件路径设置失败"<<endl;}struct rlimit rlmt;getrlimit(RLIMIT_CORE, &rlmt);rlmt.rlim_cur = (rlim_t)RLIM_INFINITY;rlmt.rlim_max  = (rlim_t)RLIM_INFINITY;setrlimit(RLIMIT_CORE, &rlmt);//do other things. 
}

3、程序崩溃后,使用gdb调试

  •     将core文件放到工程目录,即生成可执行文件得目录下;
  •     打开终端执行gdb 程序名 core文件名 ,例如:gdb a.out core;
  •     然后一般再使用bt/where命令,即可查看程序崩溃得经过。

http://chatgpt.dhexx.cn/article/0taMSxNe.shtml

相关文章

coredump详解

原文地址&#xff1a;https://blog.51cto.com/u_15471709/4868198 一&#xff0c;什么是coredump 我们经常听到大家说到程序core掉了&#xff0c;需要定位解决&#xff0c;这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止&#xff0c;并且在满…

linux之fping命令

fping检测主机是否存在,fping命令 fping类似于ping&#xff0c;但比ping强大。与ping要等待某一主机连接超时或发回反馈信息不同&#xff0c;fping给一个主机发送完数据包后&#xff0c;马上给下一个主机发送数据包&#xff0c;实现多主机同时ping&#xff0c;fping还可以在命令…

linux fping参数,linux下,fping命令与ping命令解析

ping Linux系统的ping命令是常用的网络命令&#xff0c;它通常用来测试与目标主机的连通性。 1.命令格式&#xff1a; ping [参数] [主机名或IP地址] 2.命令功能&#xff1a; ping命令用于&#xff1a;确定网络和各外部主机的状态&#xff1b;跟踪和隔离硬件和软件问题&#xf…

php fping,【Linux 命令】fping ping 包间隔时间详解

服务器间检查会用到fping的命令,期间遇到了一个问题,需要将ping包间的间隔时间设置为100毫秒,查看fping -h看下,找到了-i和-p两个参数: 看到这两个参数,我当时的表情是这样的: 看不懂,那就测吧: 先来-i: 间隔1s,没有生效.! 再试试-p OK,这个生效了,但-i 和-p的区别是…

fping使用

【-4】-ipv4仅PING IPv4地址 【-6】-ipv6仅PING IPv6地址 【-b】 指定数据&#xff0c;以字节发送&#xff08;默认值&#xff1a;56&#xff09; 【-c】指定发送的数量 【-f】读取一个文件里面的ip 【-g】扫描一个c段 【--ttl】设置ttl值 当这是为ttl1时&#xff0c;未检测到1…

linux yum fping,ping fping

通过ping来监测对端网络状态 ping fpinf在windows和linux上的参数是不同的&#xff0c;返回的结果也是不同的 在网络连通性监测方面用的比较多&#xff0c;在py go中调用命令&#xff0c;对返回的结果使用正则来在文本中挑出所需要的数据信息 windows中的ping参数 fping fping只…

【kali-2021.1】FPING—参数中文版(上)

目录 FPINGFPING是什么命令格式Fping用法选项介绍中文版示例1.不带选项2.设置数据包大小&#xff08;1&#xff09;默认情况下&#xff08;2&#xff09;在使用-b参数情况下 3.指定发送ping次数4.通过IP或DNS返回主机名5.通过文件获取目标6.一次ping多个目标7.设置TTL值8.指定网…

入侵检测——fping(扫描篇)

目录 环境介绍参数数据包参照组数据包&#xff08;使用ping命令&#xff09;windows下使用cmd发出的ping包kali在终端中发出的ping包 fping发出的数据包单个主机扫描&#xff08;无回应&#xff09;单个主机扫描&#xff08;有回应&#xff09;网段扫描 规则 环境介绍 NAT模式…

Linux C/C++ fping命令(检查主机是否存在)

ping基本上是验证网络连接的最简单工具。我们可以验证专用或公共网络中任意两个设备之间的连接。但是今天我们要讲的是fping&#xff0c;因为fping是一个类似ping的程序&#xff0c;它使用Internet控制消息协议&#xff08;ICMP&#xff09;回显请求来确定目标主机是否正在响应…

DeepLabV1网络简析

原论文名称&#xff1a;Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs 论文下载地址&#xff1a;https://arxiv.org/abs/1412.7062 参考源码&#xff1a;https://github.com/TheLegendAli/DeepLab-Context 讲解视频&#xff1a; https:…

DeepLab v3+原理和实现

这节课讲DeepLabv3模型&#xff0c;及前身DeepLabv3模型&#xff0c;两篇论文来自Google的同一个团队。 参考资料 DeepLabv3&#xff0c;被引1000 DeepLabv3&#xff0c;被引1000 Pytorch DeepLabv3实现&#xff0c;Star 1.5k 我们讲1.模型原理2.代码实现 from PIL import Im…

deeplabcut使用

cuda11.2和cudnn8.1安装 win 最新的 Win11/WIN10 安装CUDA11.2和cuDNNlinux ubuntu 16.04 安装 cuda11.2 和cudnn8.2.1 dlc安装 创建虚拟环境 安装deeplabcut2.2.3 tensorflow2.11.0 wxPython4.0.4 pip install deeplabcut2.2.3 deeplabcut里面包含了tensorflow的不用再安…

MATLAB与深度学习(一)— Deep Learning Toolbox

MATLAB与深度学习&#xff08;一&#xff09;— Deep Learning Toolbox 最近&#xff0c;我在学习基于matlab的深度学习的内容&#xff0c;并整理出如下学习笔记。本文借鉴和引用了网上许多前辈的经验和代码&#xff0c;如有冒犯&#xff0c;请及时与我联系。 1. MATLAB与深度…

Deeplab V1 和 V2讲解

Deeplab V1 Background&#xff1a; CNN的一个特性是invariance&#xff08;不变性&#xff09;&#xff0c;这个特性使得它在high-level的计算机视觉任务比如classification中&#xff0c;取得很好的效果。但是在semantic segmentation任务中&#xff0c;这个特性反而是个障…

deeplab v3+ 源码详解

训练模型&#xff1a; 下载好voc数据集&#xff0c;并传入所需的参数即可进行训练。 参数配置&#xff1a; """ 训练&#xff1a; --model deeplabv3plus_mobilenet --gpu_id 0 --year 2012_aug --crop_val --lr 0.01 --crop_size 513 --batch_size 4 --…

Deeplabcut教程(二)使用

因为很久没用这个了所以就一直没更使用教程&#xff0c;写的安装教程收到好几条私信要使用教程&#xff0c;这几天在帮一个朋友跑这个&#xff0c;于是就有了这个使用教程 安装教程&#xff1a;Deeplabcut教程&#xff08;一&#xff09;安装&#xff08;GPU&CPU版本&…

概述DeepLab系列(deeplab v1, deeplab v2, deeplab v3, deeplab v3+)

前言&#xff1a;图像分割是指像素级别的图像识别&#xff0c;即标注出图像中每个像素所属的对象类别。 语义分割更注重类别之间的区分&#xff0c;而实例分割更注重个体之间的区别。 DeepLab是由Google团队提出的一系列图像分割算法。 DeepLab v1 &#xff08;2014年&#xf…

DeepLab系列理解

原文Blog&#xff1a;https://zhuanlan.zhihu.com/p/61208558 1、deeplab v1 针对标准的深度卷积神经网络的两个主要问题&#xff1a;1.Striding操作使得输出尺寸减小&#xff1b; 2.Pooling对输入小变化的不变性&#xff0c;v1 使用空洞卷积(atrous)条件随机场(CRFs)来解决这…

Deep Lab 系列总结

Deep Lab v1 结合了深度卷积神经网络&#xff08;DCNNs&#xff09;和概率图模型&#xff08;Dense CRFs&#xff09;的方法 问题1&#xff1a;DCNN s做语义分割时精准度不够&#xff0c;根本原因是DCNNs的高级特征的平移不变性&#xff0c;即高层次特征映射&#xff0c;根…

DeepLab V3+:DeepLab系列的极致?

这篇文章提交在arXiv上的&#xff0c;对应代码也已经开源。 理解DeepLab V3的构架首先需要理解DeepLab V3&#xff08;可以参考博主的前一篇博客&#xff09;&#xff0c;V3基本上可以理解成在原始的基础上增加了encoder-decoder模块&#xff0c;进一步保护物体的边缘细节信息…