在linux下编写C++并且运行程序时,经常会出现Segmentation fault (core dumped),程序运行崩溃的情况。但是一般情况下都不会显示在哪里出错,而有时候一步一步调试又很麻烦。
在vs2012下知道可以使用alt+7键来查看导致错误的函数栈,从而知道究竟是哪个函数出现了问题。
在linux下遇到这个问题的时候是不知道怎么解决的,只能查看代码,后来知道gdb调试也有类似的功能,只需要在编译的时候增加-g选项:
g++ -g -o xxx xxx.cpp
然后以此使用下面的命令启动gdb调试器调试程序:
gdb xxx
r
当程序出错显示Segmentation fault (core dumped)时,输入 where 命令,gdb调试器便会显示出错的函数栈了,然后就可以根据函数栈去解决问题了。