给大家分享一个分析经验:
Linux下有一个gstack 命令,可以比较清晰看到当前程序运行的堆栈信息(Release、Debug版本都可以看到,可能Release版本的堆栈信息不太全)。可以通过这个命令分析一些死锁、高CPU等问题。
命令操作如下:
1、进入运行进程所在目录
2、gstack 进程pid >> stack.log
3、查看分析stack.log,一般若死锁有可能堆栈0~2序号会有 pthread_mutex_lock 的调用记录
4、可以重复执行gstack产生不同的堆栈日志,确认堆栈日志是否都重合指定线程仍在lock操作