給大家分享一個分析經驗:
Linux下有一個gstack 命令,可以比較清晰看到當前程序運行的堆棧信息(Release、Debug版本都可以看到,可能Release版本的堆棧信息不太全)。可以通過這個命令分析一些死鎖、高CPU等問題。
命令操作如下:
1、進入運行進程所在目錄
2、gstack 進程pid >> stack.log
3、查看分析stack.log,一般若死鎖有可能堆棧0~2序號會有 pthread_mutex_lock 的調用記錄
4、可以重復執行gstack產生不同的堆棧日志,確認堆棧日志是否都重合指定線程仍在lock操作