一、简单点的
编译时主动带-g,生成的程序带调试信息,而且开启生成dump文件,这时候可以使用core dump来调试程序,定位问题。可以参考:linux 程序crash 调试、原因分析及问题定位-CSDN博客
二、稍微复杂点
假设生成的可执行文件带了调试信息,那么可以考虑用gdb来调试程序,调试的教程如下:gdb调试
三、再复杂点:如果core dump文件的堆栈信息被破坏了,又该如何定位问题呢?
参考下面博文,借助栈帧信息和寄存器信息来使用gdb-x命令排查问题
四、定位排查问题实战:没有core文件时定位segfault at 0 ip (null) 的问题
上连接:没有core文件时定位段错误问题
五、崩溃时要是没有core dump文件生成,那又该如何排查问题?
借助内核的segfault日志来定位问题:内核segfault定位程序崩溃