今天写完程序运行时,提示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
本文介绍了一种调试程序中出现的segmentation fault问题的方法,通过使用ulimit命令、编译时添加-g参数、运行程序生成core文件及利用gdb进行调试等步骤,可以有效地定位和解决问题。
1万+

被折叠的 条评论
为什么被折叠?



