core dump文件的生成

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

gdb ./1 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
  打印出当前的函数中的异常处理信息。

猜你喜欢

转载自www.cnblogs.com/huang-y-x/p/10307039.html