总是隔一段时间才写一次C++,有些东西老是用完就忘了……记一下如何用gdb来调试core dump免得到时候又忘记。
首先需要设置core file的大小,默认是0所以不设不会生成core file
$ ulimit -c unlimited
然后在编译的flag里加上
-g -rdynamic
把动态静态符号表都弄过来
然后
$ make
$ # 干点啥让它core dump
假设可执行文件叫test,生成的core file叫core(ubuntu 12.04是的,其他系统可能叫其他名字)
$ gdb test core
$ ....
$ (gdb) backtrace
然后就可以看到栈来调试了=。=