如何定位CPU占用过高问题

程序运行后出现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
根据打印的信息,重点定位相关代码段。

你可能感兴趣的:(编译调试工具,编译调试,找工作-面试笔试)