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文件是如何生成的?

相关推荐
哇哈哈202114 小时前
信号量和信号
linux·c++
不是二师兄的八戒14 小时前
Linux服务器挂载OSS存储的完整实践指南
linux·运维·服务器
一个人旅程~15 小时前
如何用命令行把win10/win11设置为长期暂停更新?
linux·windows·经验分享·电脑
2302_7995257415 小时前
PCI、PCIe 和 NVLink
linux
~远在太平洋~16 小时前
Linux 基础命令
linux·服务器·数据库
Gofarlic_oms116 小时前
避免Kisssoft高级分析模块过度采购的科学评估方法
大数据·linux·运维·人工智能·matlab
~远在太平洋~16 小时前
Debian系统如何删除多余的kernel
linux·网络·debian
linux kernel17 小时前
第十一部分(下):进程通信
linux·服务器
2401_8639054417 小时前
haproxy
linux
皮皮哎哟17 小时前
Linux多线程通信:告别数据混乱
linux·互斥锁·进程间通信·信号量