Windbg中常用的几个基本命令

来源:互联网 发布:编程算法书籍知乎 编辑:程序博客网 时间:2024/06/05 05:06

Windbg中常用的几个基本命令

 

1. Symbol 文件设置:

SRV*F:/MicrosoftSymbols*http://msdl.microsoft.com/download/symbols;F:/TestApplicationSymbol

 

2. !Analyze -v

    直接分析当前的dump,能够自动找出第一现场的异常

 

3. ~0s

    切换分析的线程

 

4. kb, kp, k

    查看当前线程的Call Stack

 

5. ~* kb

    查看所有线程的Call Stack

 

6. X msvcrt!printf

    查找printf函数的入口地址

 

7. dds ebp

    打印Call Stack上的二进制值

 

8. bl, bc, bp, ba(break on access), sx (set exception)

    打印、清除、设置断点

 

9. dt

    格式化显示

 

10. .dump /ma f:/dumpfile.dump

    保存dump文件

 

 

托管代码常见命令:

 

11. .loadby sos mscorwks

    加载托管代码分析命令

 

12. !clrstack, !dumpstack

     查看当前线程的托管堆栈

 

13. ~* e !clrstack

    查看所有线程的托管堆栈

 

14. !dso (!dumpstackobject)

    查看当前堆栈的对象

 

15. !do (dumpobject)

    查看某个托管对象

 

16. !PrintException

    查看异常对象

 

17. 设置托管代码断点

0:006> !name2ee Snoop.exe Snoop.AppChooser
Module: 00382c5c (Snoop.exe)
Token: 0x02000024
MethodTable: 00386d98
EEClass: 00411b64
Name: Snoop.AppChooser
0:006> !dumpmt -md 00386d98
EEClass: 00411b64
Module: 00382c5c
Name: Snoop.AppChooser
mdToken: 02000024  (F:/SnoopSource/Snoop/Build/Release/Snoop.exe)
BaseSize: 0x1cc
ComponentSize: 0x0
Number of IFaces in IFaceMap: 9
Slots in VTable: 356
--------------------------------------
MethodDesc Table
   Entry MethodDesc      JIT Name
5777c028   5763ddd4   PreJIT System.Windows.Controls.Control.ToString()

... ...

012e06b0   00386cc0      JIT Snoop.AppChooser.Refresh()

 

0:006> !bpmd -md 00386cc0     
MethodDesc = 00386cc0
Setting breakpoint: bp 012E06B0 [Snoop.AppChooser.Refresh()]

 

 

原创粉丝点击