Linux程序崩溃调试

一、简单点的

编译时主动带-g,生成的程序带调试信息,而且开启生成dump文件,这时候可以使用core dump来调试程序,定位问题。可以参考:linux 程序crash 调试、原因分析及问题定位-CSDN博客

二、稍微复杂点

假设生成的可执行文件带了调试信息,那么可以考虑用gdb来调试程序,调试的教程如下:gdb调试

三、再复杂点:如果core dump文件的堆栈信息被破坏了,又该如何定位问题呢?

参考下面博文,借助栈帧信息和寄存器信息来使用gdb-x命令排查问题

四、定位排查问题实战:没有core文件时定位segfault at 0 ip (null) 的问题

上连接:没有core文件时定位段错误问题

五、崩溃时要是没有core dump文件生成,那又该如何排查问题?

借助内核的segfault日志来定位问题:内核segfault定位程序崩溃

写在最后:

coredump文件是如何生成的?

相关推荐
江屿风8 小时前
【Linux系统】【从【收尾】缓冲区到【新开】磁盘块:一节课打通文件系统底层原理】流食般投喂
linux·运维·服务器·人工智能·笔记
Pointer Pursuit8 小时前
编辑器Vim
linux·编辑器·vim
_upupup8 小时前
Linux中的权限解析
linux·服务器
路漫漫其修远兮sjw8 小时前
Linux 运维知识点笔记(中级)
linux·运维·笔记
石一峰6998 小时前
Linux INPUT 与 I2C 子系统关联
linux·运维·计算机外设
宵时待雨8 小时前
linux笔记归纳24:多路转接select
linux·服务器·笔记·高并发
RISCV_Explorer8 小时前
技术指南:从总线协议到软件可见行为——RISC-V 多核缓存一致性的 Linux 实践
linux·缓存·risc-v
ShineWinsu8 小时前
对于Redis:Redis特性以及应用场景的解析
linux·c++·redis·缓存·高并发·分布式系统·key-value
程序员-Benothing9 小时前
Linux系统启动流程详解:BIOS/UEFI、GRUB、initramfs、systemd
linux·运维·服务器
余槐i9 小时前
-m 2g 反而更早 OOM:Docker 内存计数与宿主机空闲口径差异
java·linux·docker·性能优化·cgroup