Linux下发生段错误原因之一:
1.访问不存在的内存地址或系统保护的内存地址; 如在函数调用中,本来应将地址传给指针参数,却误将值传入,再如写scanf函数时,忘记&地址符号;
2.访问只读的内存地址;
3.栈溢出,如递归程序,没有退出条件,无限递归导致栈溢出;
gdb调试时发生错误:
“没有符号表被读取,请使用”file“命令,分析:-g参数没添加对
多个文件如何添加调试信息:
如有两个源文件:allsort.c和main.c,写Makefile时一般逐个编译源文件,最后加调试信息无效。所以调试时要一起编译才行 gcc -g -o main allsort.c main.c -std=c99