WinDbg 入门二:基本指令介绍

勇哥注:

最近开发的软件遇到一些问题,主要是爆cpu时间,这样的后果是软件运行时间一长就会越跑越慢,最终UI失去响应。

用vs来排除,目前只知道对可疑代码进行失能,再配合任务管理器观察 :cpu使用率, cpu时间,线程,句柄等参数来判断可疑代码是不是有问题。

如果搜索一下网络,貌似这个问题大部分答案只是对线程做sleep,没啥子可用的信息。

因此是时候涨点知识了,我把学习方向放在用WinDbg调试用户模式.net程序上。


系列贴子目录:


WinDbg 入门三:调试Dump

WinDbg 入门二:基本指令介绍

WinDbg 入门一(用户模式)



(一)windbg的三类命令:

1。 Regular command(d*, e*, b*, r)    常规命令, 是一些常用命令,很短,1或2个字符。

2。 Meta-Commands (.reboot, .reload)  原命令, 以.开头

3。 Extended Commands (!process, !thread,)   扩展命令, 以!开头。


对于扩展命令,请注意下面说的扩展,不加载你将无法使用一些扩展指令:

要先调试.net的程序,需要使用一个扩展的dll,它在C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727路径下,文件名是sos.dll。
有了它我们才能运行命令(!clrstack),拷贝一份到Windbg.exe所在的目录。
然后使用指令
.loadby sos clr   加载sos和clr



(二)windbg的配置

如果选择附加的方法(Attach)调试则不需要配置,直接开干。

如果使用Dump镜像文件进行调试则必须配置。

配置项就三项: 符号路径、源文件路径、执行文件路径


image.png


下面是勇哥调试自己程序用的符号路径。

C:\windbg练习\ConsoleApplication2\ConsoleApplication2\bin\Debug;SRV*C:\symbolscache*http://msdl.microsoft.com/download/symbols


下面这个是要调试程序的pdb符号文件目录。
C:\windbg练习\ConsoleApplication2\ConsoleApplication2\bin\Debug


下面这个是微软的线上符号库,当你的程序用到微软的组件时,需要由这个获取符号。

SRV*C:\symbolscache*http://msdl.microsoft.com/download/symbols


符号路径配置是最重要的一个步骤,这个错误,后面就不用玩了。



(三)控制和使用调试符号的指令


(1)加载

ld[ModuleName]


(2)重新加载

.reload


(3)设置选项

.symopt

!sym noisy | quiet | prompts | prompts off


!sym noisy 打开符号的查找模式,windbg会显示找符号的过程。关掉则使用!sym quiet

 

(4)查找符号

ln  0xXXXXX    (地址)

(字母LN)


(5)检查符号

x nt!Dbgk*

例如: x kernel32!*    找kernel32符号


(6) 显示当前的符号路径配置 

.sympath

image.png



本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864