关于windebug查询进程中各个线程占用cpu时间,解决CPU占用很大问题


按照如下步骤进行:

(1)如果在调试,请在vs中的调试菜单中分离菜单项目,将调试进程与vs分离;

(2)启动windebug,设置改进程的符号文件路径,符号文件分为两种,一个是系统的符号文件,一个是自己进程的符号文件,关于符号文件设置比较简单,网络找到即可,我的符号文件设置如下:SRV*d:\sysmbol* http://msdl.microsoft.com/download/symbols;E:\Work\NVMS_V3\trunk\Bin 

(3)选择windebug的菜单 File->Attach to a process附加到某一进程,如此就可以用windebug工具调试对应进程,输入各种命令查看当前进程状态

(4)查看cpu占用100%的问题,关键在于查看进程中各个线程占用cpu时间,我们可以使用命令  “!runaway” ,运行如下

0:027> !runaway

 User Mode Time

  Thread       Time

  20:978       0 days 0:07:07.765

   0:f58       0 days 0:00:06.015

  18:19c       0 days 0:00:00.046

  14:48c       0 days 0:00:00.015

  13:424       0 days 0:00:00.015

  27:eb0       0 days 0:00:00.000

  26:a58       0 days 0:00:00.000

  25:c30       0 days 0:00:00.000

  24:e40       0 days 0:00:00.000

  23:c6c       0 days 0:00:00.000

  22:9f0       0 days 0:00:00.000

  21:974       0 days 0:00:00.000

  19:98        0 days 0:00:00.000

  17:494       0 days 0:00:00.000

  16:418       0 days 0:00:00.000

  15:9a8       0 days 0:00:00.000

  12:51c       0 days 0:00:00.000

  11:f7c       0 days 0:00:00.000

  10:54c       0 days 0:00:00.000

   9:594       0 days 0:00:00.000

   8:570       0 days 0:00:00.000

   7:dc        0 days 0:00:00.000

   6:110       0 days 0:00:00.000

   5:510       0 days 0:00:00.000

   4:514       0 days 0:00:00.000

   3:50c       0 days 0:00:00.000

   2:674       0 days 0:00:00.000

   1:648       0 days 0:00:00.000


可以从以上信息中找到对应20号线程,也就是线程地址为978的线程占用cpu较高,问题症结就在这里了,找到20号线程运行堆栈信息就知道你的进程现在不停的在做什么事情了!!

(5)剩下的就是打印20号线程对应堆栈,找到20号线程占用时间问题,使用命令~20kb(~*kb是查看所有线程堆栈信息)列出20号线程堆栈

ChildEBP RetAddr  Args to Child             

05e8fe84 0202efc2 0202ef97 7c947e71 03d53248 TSVulEngine!TKBLogUpload::PrivateStartUpload+0x16 [d:\...\vul_tkblogupload.cpp @ 220]

05e8fe8c 7c947e71 03d53248 00000001 046e10a8 TSVulEngine!UploadTimerRoutine+0x2b [d:\... \vul_tkblogupload.cpp @ 43]

一看以上信息就知道cpu耗时就在 PrivateStartUpload函数中,此时检查改函数即可定位到问题所在!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贝壳里的沙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值