一、背景
在程序开发过程中经常会遇到程序崩溃、内核崩溃等现象,崩溃的原因无非就是内存泄露、内存溢出等导致程序操作了非法指针。当代码量不大、复现几率高的时候排查此类问题可以通过查阅代码、加调试信息等手段来定位问题。但是如果复现概率极低、代码量大,程序运行时依赖多个动态的库,程序strip
后debug
信息被移除等情况下,通过程序崩溃时产生的backtrack
来回溯程序运行异常的状态是一种非常好的手段。
崩溃信息分两种:
- 内核崩溃信息
- 应用程序崩溃信息
内核crash
时需要产生详细的backtrack
信息,可以在编译内核内进行功能配置,使用kdump
和产生的crash
信息来分析问题。这里主要通过案例讲解通过应用程序的崩溃信息排查应用程序的bug
,在分析coredump
文件前,系统需要设置如下内容: 开启coredump
、设置coredump
文件名