|
我在自动脚本中的某个点上的python进程开始在基于Linux的系统(Ubuntu)上咀嚼CPU. 我正在尝试在GDB中调试此问题.我是GDB的新手. 是否有任何GDB命令来提供有关哪个线程正在使用大多数cpu的信息. 查看线程堆栈并不能真正解决这个问题.
在windows windbg世界中,命令’!runaway’确实给出了进程中每个线程消耗的时间信息. 我们在这里有相同的命令吗? 还有其他调试问题的建议吗?
最佳答案
只是为了澄清诊断此问题所需的所有步骤. (感谢大家的帖子):
以下命令显示进程列表及其CPU /内存使用情况:
ps auxf
以下命令提供按CPU使用情况排序的进程的所有线程列表.
top -H -p [PID]
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1654 root 20 0 1416m 1.2g 24m t 100 36.8 21:26.23 python
1687 root 20 0 1416m 1.2g 24m t 0 36.8 0:05.07 python
线程1654正在咀嚼CPU.将gdb附加到进程
gdb /path/of/process [pid]
在gdb中执行以下命令以获取线程列表
(gdb) info threads
2 Thread 0xa7bffb40 (LWP 20736) “python” 0xb7736424 in __kernel_vsyscall ()
1 Thread 0xb73a56c0 (LWP 1654) “python” 0xb7736424 in __kernel_vsyscall ()
在gdb中切换到线程来检查其堆栈.
(gdb) thread 1
(gdb) bt
(编辑:安卓应用网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|