如果遇到Segmentation fault类型的错误,就比需用到gdb调试了
具体步骤如下:
1.生成core文件用于调试:ulimit -c unlimited
2.运行有问题的程序生成的可执行文件比如:./main,运行结束会发现core文件生成了Segmentation fault (core dumped)
3.利用gdb调试core文件:gdb main core.*(core文件实际名字)
4.进入gdb调试模式命令行
5. 如上面图,可以对可疑栈进行查看:
如:(gdb)f 1
(gdb)l
6. 可以打印 代码的中变量的值: print 变量名
设置断点调试:
1.假设要调试的文件为tiaoshi.cpp
2.写好文件编译准备调试: g++ -o -g tiaoshi tiaoshi.cpp
3.利用gdb调试:$gdb tiaoshi.o
5.添加断点: (gdb)b 行号
6. (gdb)run