每天学点GDB 9

本篇主要讲解如何利用gdb对coredump进行分析

gdb ./demo core

查看调用堆栈

gdb)bt 
查看更为完整的信息
gdb) bt full

如果是多线程,想看每个线程的调用堆栈

gdb) thread apply all bt

至于如何分析内存变量之类的,在本一系列前面的章节有专门论述,可以参考。

想调试已经在运行的程序

gdb ./demo

假设当前运行着的demo进程为1234,则在gdb中运行attach进行关联

gdb) attach 1234

注意attach上之后,当前运行着的进程处于停止状态,要恢复运行,请用continue
对当前运行着的进程调试完毕,解脱关联

gdb)detach

最后的最后,如果想手工产生coredump文件,怎么办。
两种方法,第一种

kill -3 pid

第二种,利用gcore

gcore pid

推荐使用gcore,因为在产生core文件的同时,运行着的进程不会重启。

 

 

 

posted @ 2013-05-03 09:17  徽沪一郎  阅读(435)  评论(0编辑  收藏  举报