查找c++进程cpu占满的原因

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/majianfei1023/article/details/79663441

最近运行服务器程序,在特定触发条件下,发现某个进程CPU占用率超过100%,心里一惊,因为服务器用c++写的,就决定调试下。
先按网上说的使用pstack指令打印cpu占满的进程的堆栈信息.
其中 pstack是基于gdb封装的shell脚本,有兴趣的可以去看一下。

pstack pid
这里写图片描述
发现正常的进程的堆栈显示比较正常,异常的进程的堆栈闲显示就全是??。
这个方法行不通,就换gdb调试。

gdb -nx /proc/pid/exe pid
backtrace
这里写图片描述

显示在handCard这里死循环了。
问题定位成功,下面就是看逻辑怎么死循环了。

展开阅读全文

没有更多推荐了,返回首页