1 基本应对方法

1.1 程序异常结束的应对方法

image.png

1.2 程序不结束时的应对方法

image.png

1.3 内核有问题的现象

image.png

2 获取进程的core dump

core dump可以保存问题发生时的状态和函数调用栈。

查看当前coredump功能是否开启

  1. barret@Barret-PC:~$ ulimit -c
  2. 0 //0表示当前没有开启core dump
  3. barret@Barret-PC:~$ ulimit -c unlimited //开启coredump,不显示文件大小
  4. barret@Barret-PC:~$ ulimit -c xxxx //开启coredump,限定文件大小

当执行程序崩溃时,会输出以下内容并生成core文件

barret@Barret-PC:~$ ./a.out
Segmentation fault (core dumped)
barret@Barret-PC:~$ ls
a.cpp  a.out  core
# 使用如下gdb命令进行调试
barret@Barret-PC:~$ gdb -c core a.out