core dump文件的生成

#include <stdio.h>
int main(int argc, char *argv[])
{
char * p = "abcdefg";
p[] = '';
printf("result = %s\n", p );
return ;
}
gcc  -g gdb.c -o 

gdb ./ core

1.  生成core dump文件的方法:

  $ ulimit -c //查看是否为0

  如果为0

  $ ulimit -c unlimited

  这样在程序崩溃以后会在当前目录生成一个core的文件

1.  调试core dump文件

  生成了core文件以后

  $ gdb ./1 core

  就会恢复现场到你的程序崩溃的那一刻

  (gdb)bt //这个命令会列出程序崩溃时的堆栈信息,一层一层会有标号 #0 #1 #2 .......

  如果你要查看某一层的信息,你需要在切换当前的栈,一般来说,程序停止时,最顶层的栈就是当前栈,如果你要查看栈下面层的详细信息,首先要做的是切换到你想看的栈

  (gdb)f N //N是你想要切换的栈的标号,达到后可以用 ‘p 变量’ 查看变量的值,以查找异常出现的原因

  info args
  打印出当前函数的参数名及其值。

  info locals
  打印出当前函数中所有局部变量及其值。

  info catch
  打印出当前的函数中的异常处理信息。

上一篇:学习笔记TF045:人工智能、深度学习、TensorFlow、比赛、公司


下一篇:HttpClient4.5.2 连接池原理及注意事项