这里列出一个段错误的简单代码
#include<stdio.h>
#include<fcntl.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char *p;
char *q = "hello";
strcpy(p,q);
return 0;
}
很容易看出是char指针p没有申请空间,程序运行结果如下:
可以看到出现了段错误(segmentation fault)
追踪的方法是:
编译时加 -g 生成可调试文件,然后在gdb里从头开始start,哪一步停下了,就是哪一步出现错误了