main.c文件
#include <stdio.h>
void test()
{
int *ptr=NULL;
*ptr=10;
}
int main(int argc,char** argv)
{
test();
return 0;
}
加上编译选项-g O2可以定位到具体某一行
编译:gcc -g -O2 main.c
生成:./a.out
这个代码运行起来是会报 segmentation fault(core dumped) ,显然问题是给一个空指针赋值了
接下来我们来采用gdb调试这个问题
输入:gdb ./a.out
zienon@zienon-virtual-machine:segmentation$ gdb ./a.out
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU