Linux的段错误调试方法

时间:2023-03-09 06:24:30
Linux的段错误调试方法

Linux的段错误调试方法

linux段错误的调试方法

相关博文:

http://blog.****.net/htianlong/article/details/7439030

http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html

http://www.cnblogs.com/panfeng412/archive/2011/10/24/2222413.html

http://hi.baidu.com/zmohadnaadbfntr/item/5732180d816c1d813c42e211

如下面的的程序就会产生段错误

cs.c

  1. #include <stdio.h>
  2. int main(void)
  3. {
  4. int *p = NULL;
  5. *p = 10;
  6. return 0;
  7. }

Makefile

  1. CFLAGS=-Wall
  2. CC=gcc
  3. cs:cs.o
  4. $(CC) cs.o -o cs
  5. cs.o:cs.c
  6. $(CC) -c -o cs.o cs.c
  7. clean:
  8. $(RM) *.o
  9. .PHONY:clean

执行命令

make

./cs

输出结果

Linux的段错误调试方法

调试方法:

  1. 切换到root用户     su root
  2. 执行 ulimit -a
  3. 执行 ulimit -c unlimited
  4. 更改Makefile文件   在-Wall后增加 -g
  5. 执行 make
  6. 执行 ./cs   目的 生成core文件
  7. 执行 gdb ./cs core
  8. 执行quit 退出gdb
  9. ctrl d 切换回普通用户

Linux的段错误调试方法

Linux的段错误调试方法

Linux的段错误调试方法

Linux的段错误调试方法

Linux的段错误调试方法

Linux的段错误调试方法

Linux的段错误调试方法