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

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

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

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

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

猜你喜欢

转载自blog.csdn.net/majianfei1023/article/details/79663441
今日推荐