在Windows下写程序,可以很方便的使用MiniDumpWriteDump来保存当前程序的堆栈信息,以供调试,而在linux下,事情似乎变得更加容易一些。
1. SSH登录到机器上(或者打开终端),查看当前是否允许产生dump文件,使用命令

ulimit -c

如果返回的结果为0则表示当前的系统不会产生dump文件,使用该命令修改这一数值至无限

ulimit -c unlimited

则会允许系统产生core dump文件
2. 使用GDB调试该core dump文件,使用命令

gdb [bin file] [core file]

3. 打开了GDB后,使用bt来查看当前的堆栈信息,然后使用select命令选择感兴趣的帧,最后使用l命令来显示出源代码(注:使用GCC或者G++编译的时候,需要加上-g参数将调试信息编译至bin文件中)