Linux下线程调试 ulimit core(2)

当你得到core文件之后,就可以利用gdb进行调试了!
gdb  exe(你的可运行程序)  ./core.pid(core文件)
进去后,使用bt即可查看死掉时栈的情况,省掉了无尽的调试跟踪,是不是很方便~。

然后使用frame命令。
还有就是里面某个线程停住,也没死,这种情况一般就是死锁或者涉及消息接受的超时问题(听人说的,没有遇到过)。遇到这种情况,可以使用:
gcore pid (调试进程的pid号)
手动生成core文件,在使用pstack(linux下好像不好使)查看堆栈的情况。如果都看不出来,就仔细查看代码,看看是不是在 if,return,break,continue这种语句操作是忘记解锁,还有嵌套锁的问题,都需要分析清楚了。

有了这个方法,多线程调试再也不头疼了!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/da1cbcdcb30d085b3e9421aa0c508b69.html