在linux下程序崩溃时,一般会在指定目录下生成一个core文件。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的,接下来我们通过一个案例观察怎么利用GDB调试core文件。
在命令行中键入 gdb <可执行文件> < core文件>:
进入gdb命令行中:
键入 bt 可以查看程序终止线程的堆栈:
但是有时错误不是发生在这个堆栈上。
键入 info threads 查看所有线程:
键入 thread apply all bt 查看所有线程内容:
键入 t 85 转换到thread 85中:
键入 bt 查看thread 85的堆栈: