出现了段错误:

决定使用GDB查看是哪里的问题
1、使用ulimit -c unlimited修改core文件的最大限制为无限(默认为0)
2、使用-g重新编译文件

3、正常运行,

4、运行到上一次出错的地方,出现core dumped

5、查看是否生成core文件

6、使用 gdb + 可执行文件名 + core的方式调试

7、显示结果
显示这里出现了错误,但这明显是系统调用中的代码,所以接着查看递归栈

8、使用bt查看递归栈
从下往上看,很容易找到错误的地方

之后发现是一个变量重复定义导致其值为NULL而造成段错误
本文讲述了如何通过GDB工具排查程序中出现的段错误,涉及修改core文件限制、重新编译、调试过程中的coredump,最终定位到一个因变量重复定义导致的NULL指针异常。
3987

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



