今天写完程序运行时,提示segmentation fault,看到这个提示的第一反应就是指针使用有问题。不想再回头看代码,于是百度了一下有关此问题的调试方法,记录一下。
1.使用ulimit -c unlimited命令来生成core文件。默认出现coredump时是不会产生core文件的,使用此命令后会将内核产生的core文件的默认大小设置为无限制。
2.编译程序时添加-g参数,打开debug模式。
3.运行程序,在当前目录下会产生core文件。
4.执行gdb test.o core命令,进入debug模式。结果如下:
从上面就可以看出产生错误时的参数信息并可以定位到源代码的具体的行数。
感谢 https://blog.csdn.net/wangpengqi/article/details/12998151