ubuntu生成&设置core文件,调试段错误

2023-05-16

在用ubuntu系统编码c++程序时,经常遇到段错误,以下介绍ubuntu系统下如何生成core文件,设置core文件路径,并进行调试core文件,找到段错误原因。

1.允许ubuntu系统生成core文件

ulimit -a

查看core文件有关所有信息

如果core file size为0,需要设置ulimit -c unlimited,在个人配置文件~/.bashrc或者/etc/profile中添加才可以永久生效,否则仅在当前窗口生效

2.设置core文件生成路径

  • 设置pid作为文件扩展名

echo “1” > /proc/sys/kernel/core_uses_pid

  • 控制core文件保存位置和文件名格式

echo “/corefile/core-%e-%p-%t” > /proc/sys/kernel/core_pattern

%p - insert pid into filename 添加pid(进程id)
%u - insert current uid into filename 添加当前uid(用户id)
%g - insert current gid into filename 添加当前gid(用户组id)
%s - insert signal that caused the coredump into the filename 添加导致产生core的信号
%t - insert UNIX time that the coredump occurred into filename 添加core文件生成时的unix时间
%h - insert hostname where the coredump happened into filename 添加主机名
%e - insert coredumping executable name into filename 添加导致产生core的命令名

上面的设置大概只是暂时生效,永久生效需要在系统配置文件/etc/sysctl.conf中设置

kernel.core_uses_pid = 1
kernel.core_pattern = /corefile/core-%e-%p-%t

 然后执行sysctl -p立即生效,检查是否生效:

cat kernel.core_uses_pid
cat kernel.core_pattern

查看输出是否为自己设置的路径

如果重启电脑之后还是无法生效,则需要再次执行sysctl -p

3.调试core文件

bt:打印堆栈信息
where: 定位core的地方
f n: 进入指定的堆栈
p 变量名:打印变量名,查看错误情况

参考:

https://blog.csdn.net/a395381306/article/details/99759941

Linux生成core文件、core文件路径设置_faith的运维开发之路的博客-CSDN博客_linux core配置

LINUX C/C++ GDB 调试core文件_Hamlee67的博客-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu生成&设置core文件,调试段错误 的相关文章

随机推荐

  • UE4——打印函数

    输出当前类名 xff0c 注意是两个 GEngine gt AddOnScreenDebugMessage 0 30 f FColor Red FString FUNCTION 输出当前物体名 GEngine gt AddOnScreenD
  • vscode主题

    刚发现的 xff0c 代码效果比较好
  • VSCode 全局搜索正则排除不想显示的文件

    排除前 排除后 lst
  • 串口打印小数

    一般串口是打印一个8位字符 xff0c 或者打印一个数组 xff0c 如果要打印小数 xff0c 就要用到格式化输出 xff0c 把小数格式化输出到数组里面 u8 a 10 b 10 co2 61 1 001 tvoc 61 2 001 s
  • UE4——蓝图多重for循环

    1 示例 如下打印 xff0c 说明成功进行3次循环
  • C++链表

    上个简单链表 xff0c 写的有些难看 xff0c 现在更改一下 https liu endong blog csdn net article details 111934018 添加了删除尾结点 xff0c 添加了删除头结点 includ
  • 电路设计——发光二极管限流电阻

    0 序 最近在设计电路画板子了 xff0c 画完发现 xff0c 这电阻电容咋用啊我去 于是来学一下电阻和电容的使用 1 限流电阻作用 限流电阻主要是为了防止电流过大损坏器件 这里的限流其实还起到分压的作用 xff0c 比如我们单片机出来的
  • stm32cubeMX+FreeRTOS(4)—— main函数while循环

    0 发现 想在主函数中打印一下串口数据 xff0c 发现一直打印不出来 xff0c 试了下开关小灯 xff0c 发现没有进main函数的while循环 xff0c 阿西吧 xff0c 我大概要重新看一下CubeMX的rtos架构了 本来打算
  • Docker常见操作

    记录docker使用过程中的常用操作 1 xff0c 拉取镜像 docker pull image name image tag such as ubuntu 18 04 2 xff0c 列出所有镜像和容器 docker images do
  • stm32cubeMX+FreeRTOS(5)—— 串口打印

    0 序 cubeMX的FreeRtos和hal库的打印方式一样 本文基于CubeMX6 1 1版本编写 xff0c 此时CubeMX6 3 1已经无法使用此代码 xff08 2022 1 17 xff09 1 CubeMX配置串口 点一下串
  • HLK-B36 WIFI/BLE 二合一透传沙雕按键说明

    模块如下 沙雕说明如下 实际操作如下 恢复出厂设置 xff1a 插usb上电 xff0c 长按ES0 6秒以上 xff0c WIFI灯和STA灯同时灭掉然后亮起 xff0c STA开始闪烁 进入AT模式方式1 xff1a 插上USB xff
  • VScode下载安装及使用教程

    0 序 1 下载 官网下载速度特别慢 xff0c 需要用国内镜像 官网 xff1a Visual Studio Code Code Editing Redefined国内 点进去之后会过慢慢打开下载链接 xff0c 速度非常慢 跳转到这个界
  • 再探C语言链表—TypeDef Struct模式声明链表节点

    0 序 之前看到的网上的书上的都是Struct直接创建节点 我记得typedef struct是大学时候数据结构课本上用来声明链表结点的方法 xff0c 这个方法让人容易操作链表 后来书本扔了 xff0c 再买了盗版书不知道是版本问题还是什
  • STM32CubeMX(6)——Printf导致程序卡死

    0 序 换电脑 xff0c 新安装的cubemx 6 3 0 xff0c vs2019 xff0c minGW7 0 xff0c 不晓得什么原因 xff0c 可能是他们使用了安全函数printf s和scanf s xff0c 导致keil
  • 字符串链式队列入队出队

    include 34 queue h 34 include 34 stdio h 34 include 34 malloc h 34 64 brief 链式队列数据结构定义 typedef struct QueueStruct char v
  • AD21几个容易忘记的快捷键

    CTRL 43 D 打开透明模式 适合等长操作 CTRL 43 M 测量距离 SHIFT 43 R 推挤走线 D 43 K 打开层叠管理器 t 43 v 43 g 从板框选择铺铜 设置鼠标滑过显示高亮 取消自动闭合回路 xff0c 用于打多
  • C字符队列

    链式队列数据结构定义 typedef struct QueueStruct char value struct QueueStruct next queueStruct void QueueInit brief 链式队列初始化 void E
  • QT+OpenGL(1)——包含头文件

    关于智能提示建议放弃Cmake生成 xff0c 直接包含头文件 xff0c 包含方法如下 如果找不到头文件 xff0c 直接用everything搜相应文件 xff0c 再给包含进去 需要新建文件夹 xff0c 新建文件 c cpp pro
  • 2d激光雷达(rplidar_s1)与双目摄像头联合标定

    前段时间由于项目需要使用摄像头 xff08 realsense d435i xff09 与单线激光雷达进行融合 xff0c 于是就对这两个传感器进行了标定 xff0c 使用的是CamLaserCalibraTool xff0c 这是别人开源
  • ubuntu生成&设置core文件,调试段错误

    在用ubuntu系统编码c 43 43 程序时 xff0c 经常遇到段错误 xff0c 以下介绍ubuntu系统下如何生成core文件 xff0c 设置core文件路径 xff0c 并进行调试core文件 xff0c 找到段错误原因 1 允