linux 段错误跟踪-gdb&core dump

使用场景

当使用之前介绍的addr2line工具无法定位时,如程序崩溃在动态库处,此时就可使用gdb分析core dump文件定位问题。

core dmup

简介

core dump 又叫核心转储,是一个程序运行时的环境一个集合包,包含崩溃时的堆栈信息,是一个二进制文件,无法使用记事本打开,一般会在指定目录下生成一个core文件。core文件仅仅是一个内存映象,主要用来调试。

使用

  1. 查看开启状态
    ulimit -c
    0 关闭
    unlimited 未限制大小
    状态查询
  2. 设置单个文件大小
    ulimit -c 文件大小
    ulimit -c 1024 1024k
    ulimit -c unlimited 大小未限制
    ulimit -c 0 关闭
    在这里插入图片描述
  3. 指定core dump文件的生成路径

系统默认的core文件生成路径是/var/logs,但/var/logs目录并非系统自带的,系统初始安装默认自带的是/var/log,最终导致该系统出现core
dump后并没能生成core文件。指定core dump文件存在/dump/目录下,格式自定义

echo ‘/dump/core-%e-%p-%t’ > /proc/sys/kernel/core_pattern
more /proc/sys/kernel/core_pattern
如果这样还是没有生成core文件,建议不设置路径,选用默认路径为可执行程序相同目录
echo ‘core-%e-%p-%t’ > /proc/sys/kernel/core_pattern
在这里插入图片描述

gdb 定位崩溃处

gdb 指令分析core dump文件

gdb格式如下:
gdb [exec file] [core file]
[exec file]表示之前使用gcc编译的程序
[core file]表示之前产生的dump文件

如下图所示崩溃在core_dump.c 文件的第7行
在这里插入图片描述

gdb 调试指令

  1. bt
    命令用于获取当前线程的函数调用堆栈信息。
    它会显示当前线程中函数调用的序列,从当前位置回溯到程序的入口点。
  2. disass
    反汇编
    在这里插入图片描述

相关推荐

  1. linux错误的分析

    2024-04-10 11:00:01       31 阅读
  2. 虚拟环境导致的错误

    2024-04-10 11:00:01       32 阅读
  3. linux异常信号量

    2024-04-10 11:00:01       31 阅读
  4. 常用的调试方法(错误产生原因)

    2024-04-10 11:00:01       56 阅读
  5. 3. C++ 常见的错误及对策

    2024-04-10 11:00:01       38 阅读
  6. linux 错误编号使用

    2024-04-10 11:00:01       42 阅读
  7. Python3 如何定位错误错误 (核心已转储)

    2024-04-10 11:00:01       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-10 11:00:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-10 11:00:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-10 11:00:01       87 阅读
  4. Python语言-面向对象

    2024-04-10 11:00:01       96 阅读

热门阅读

  1. git-es6-promisem面试

    2024-04-10 11:00:01       31 阅读
  2. ES6 => 箭头函数

    2024-04-10 11:00:01       29 阅读
  3. Hermite 多项式

    2024-04-10 11:00:01       26 阅读
  4. 使用UDP完成网络单词查询,利用dict数据库

    2024-04-10 11:00:01       36 阅读
  5. Request 读取窗体变量四种方式

    2024-04-10 11:00:01       40 阅读
  6. 深度学习神经网络模型微调

    2024-04-10 11:00:01       42 阅读
  7. React中如何实现父组件调用子组件的方法

    2024-04-10 11:00:01       34 阅读
  8. Unity之Unity面试题(四)

    2024-04-10 11:00:01       38 阅读
  9. 无人机空气动力学

    2024-04-10 11:00:01       33 阅读
  10. Linux_CentOS学习笔记

    2024-04-10 11:00:01       37 阅读
  11. LeetCode 671. 二叉树中第二小的节点

    2024-04-10 11:00:01       35 阅读
  12. 蓝桥杯备考随手记: 递归

    2024-04-10 11:00:01       39 阅读