linux上用C/C++写程序时,很容易碰到段错误的提示,此时程序被自动终止。这个问题是由于非法访问内存引起的,一般的原因都是因为程序中的指针解引用出现了错误。出现段错误是,linux一般会生成一个core dump文件,如果没有生成,可能是因为分配给core dump文件的控件为0,可以用ulimit -c命令查看,如果为0,core dump文件不会生成,可以通过执行ulimit -c [数字],来指定core dump文件可以使用的空间,我一般执行ulimit -c unlimited,把空间设置为无限。
core dump文件默认生成在执行程序的目录中,生成后,执行gdb [可执行文件名] [core dump文件名],用gdb来打开dump文件,然后运行bt指令,可以看到BackTrace。