文章标题 原创 翻译 转载 文章内容 # 现象 使用```top -c```命令查看发现某个进程的CPU一直100%以上,第一反应就是查看日志,如果发现某一处频繁打印日志,那么恭喜你很容易就定位到问题所在了,如果查看日志发现没什么异常请继续往下看。 # 出现问题的线程 进程ID你应该已经知道了,下一步要找到出现问题的线程ID,假如进程ID是:19672 ``` top -H -p 19672 ``` 找到CPU占用100%的线程ID,注意第一行是当前进程ID,通常在第二行,假如有问题的线程ID是:19989 # 使用gdb attach目标进程 ``` gdb 进程名 19672 ``` 回车在(gdb)命令后面输入 ``` (gdb) info threads ``` 下面会列出所有线程ID,找到```(LWP 19989)```,如果不在当前页可以按Enter键继续往下翻页,找到后注意第一行的编号,如下编号是7 ``` 7 Thread 0x7f8279fef700 (LWP 19989) ``` 一直按Enter直到可以输入(gdb)命令,输入: ``` (gdb) thread 7 回车后 (gdb) bt ``` 下面输出的信息应该对你有所帮助。 # 退出调试 (gdb) detach 文章类别 Python Mobile Android Java Shell Life Database Bug Windows IOS Tools Boost Node.js Mac Product Tips C/C++ Golang Javascript React Qt MQ MongoDB Design Web Linux LLM ChatGPT RAG AI 提交