码迷,mamicode.com
首页 > 数据库 > 详细

windbg 边学边记

时间:2017-05-27 15:17:16      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:占用   详细   lan   有用   加载   调用约定   技术分享   att   nbsp   

6、 lmf

列出当前进程中加载的所有dll文件和对应的路径

技术分享

奇怪没找到我程序里边加载的dll  乖乖滴.难道attach 进程把dll关了吗? 用空用dump 试试.

11!runaway 可以显示每一个线程的cpu消耗 

这个命令挺好,直接找到哪个线程占得时间久 ,如果一直占着,那这个线程里边一定是有死循环,或者不停的操作某个东西

技术分享

线程6号 占用时间1分钟31秒

我看有人通过抓dump  才查看,那种应该是最准的吧, windbg  附加到进程里之后,程序卡掉了,占资源的dll 也停下来了.

通过dump多抓几次,每次都一样占时间的那个线程就是问题所在的线程.

12、 ~     命令是用来切换目标线程

0:018> ~ 可以显示线程的信息
0:018> ~0s   把当前的线程切换到0号线程,也就是主线程,切换后提示符会变为0:000.

13 、~* 命令列出当前进程中的所有线程的详细信息

14、~*kb    命令列出所有线程的堆栈

15、 k     命令用来显示当前线程的堆栈,如下

 

转到六号线程 

 技术分享

没有多少信息

15、 k     命令用来显示当前线程的堆栈,如下

0:018> k
跟d命令一样,k后面也可以跟很多后缀,比如kb kp,kn,kv,kl等,这些后缀控制了显示的格式和信息。
栈指令k[b|p|P|v]
这四条指令显示的内容类似,但是每个指令都有特色;

KB显示三个参数;

Kp显示所有的参数,但需要Full Symbols或Private PDBSymbols支持。KP与Kp相似,只是KP将参数换行显示了;

Kv用于显示FPO和调用约定;

KD,用于显示Stack的Dump,在跟踪栈时比较有用。
这些指令区分大小。

16 、u   命令把指定地址上的代码翻译成汇编输出

0:018> u 7739d023 
USER32!NtUserWaitMessage:
7739d023 b84a120000 mov eax,0x124a
7739d028 ba0003fe7f mov edx,0x7ffe0300
7739d02d ff12 call dword ptr [edx]
7739d02f c3 ret
如果符号文件加载正确,可以用uf命令直接反汇编整个函数,比如uf USER32! NtUserWaitMessage

 

windbg 边学边记

标签:占用   详细   lan   有用   加载   调用约定   技术分享   att   nbsp   

原文地址:http://www.cnblogs.com/zuochanzi/p/6912808.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!