现象:
ps -ef|grep 程序名称 ,如下图第三列 cpu占用过高
解决办法:
1. top -Hp PID查看那条线程占用CPU过高。(这里的PID是上图的第二列,进程id)
2. 获得CPU过高的线程ID
3. gdb:进入gdb
4. attach 线程id
5. bt : 查看当前堆栈,确定当前在哪里频繁执行,从而定位问题
总结:
这是gdb线程调试,还可以直接调试进程,从而定位问题
1. gdb : 进入GDB
2. attach 进程id
3. info threads : 查看可切换调试的线程
4. thread 线程id (这里的线程id是info threads输出的第一列内容)
5.thread 2 :切换调试到子线程2
6. bt : 查看当前堆栈,从而定位问题