这篇博文主要讲下如何编写程序并使用gdb调试段错误(core dump)
何为gdb?---百度百科
UNIX及UNIX-like下的调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具相比于VC、z的优点是具有修复网络断点以及恢复链接等功能。BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。
GDB四个方面的功能:
1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。
2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)
3、当程序被停住时,可以检查此时你的程序中所发生的事。
4、你可以改变你的程序,将一个BUG产生的影响修正从而测试其他BUG。
举个有bug的栗子:文件名 test.c
1 #include<stdio.h>
2 int main()
3 {
4 int a;
5 printf("please enter num:");
6 scanf("%d", a);//很明显这里没有加取址符&
7 printf("%d", a);
8 system("pause");
9 return 0;
10 }

ulimit -a//显示当前各进程的限制,可见core文件大小限制等于0
ulimit -c unlimited//设置成无穷大
ulimit -c //查看是否设置成功,成功显示unlimited
file core.4798 //假装查看名为4798的段错误文件

gdb ./test core.4798//开始调试,此时可以看到哪块地方程序崩溃掉的
