程序运行后出现cpu占用过高,一般是代码有死循环等。top命令可以查看cpu使用情况,找到问题进程。
对cpu使用过高的进程的所有线程进行排序
ps h -e -o pid,tid,pcpu,cmd --sort=pcpu | grep xxx
得到cpu占用率最高的线程的线程号,比如2907进程的线程2909
使用gdb
gdb
gdb>attach 2907
gdb>info threads
列出所有线程信息,发现2909线程编号12
切换线程,bt打印线程栈
gdb>thread 12
gdb>bt
根据打印的信息,重点定位相关代码段。