Windbg:确定崩溃前断点的次数

时间:2015-08-27 20:46:14

标签: windbg

我设置了以下断点:

bp MSPTLS!LsCreateLine 100

程序在断点达到100次之前崩溃。在崩溃后我bl,我得到以下内容:

0 e 5dca4b62     0072 (0100)  0:**** MSPTLS!LsCreateLine

我从这个信息中假设在崩溃之前突破点被击中了72次。

然而,当我做bp MSPTLS!LsCreateLine 80时,我能够在崩溃之前击中断点,告诉我在崩溃之前断点被击中超过72次。这72不表示断点达到了多少次?

1 个答案:

答案 0 :(得分:3)

WinDbg的默认数字格式是十六进制。如果您想要十进制数字,请在其前面添加0n

0:005> bp ntdll!DbgBreakPoint 0n100
0:005> bl
 0 e 7735000c     0064 (0064)  0:**** ntdll!DbgBreakPoint

0064之前的计数器(0064)向后计数。您可以在任何GUI应用程序中轻松观察到:

0:000> bl
 0 e 74fd78d7     000a (000a)  0:**** USER32!NtUserGetMessage+0x15
 1 e 74fd78c2     0064 (0064)  0:**** USER32!NtUserGetMessage
0:000> g
Breakpoint 0 hit
eax=00000001 ebx=00000001 ecx=00000000 edx=00000000 esi=001faf8c edi=74fd787b
eip=74fd78d7 esp=001faf44 ebp=001faf60 iopl=0         nv up ei pl zr na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246
USER32!NtUserGetMessage+0x15:
74fd78d7 83c404          add     esp,4
0:000> bl
 0 e 74fd78d7     0001 (000a)  0:**** USER32!NtUserGetMessage+0x15
 1 e 74fd78c2     005a (0064)  0:**** USER32!NtUserGetMessage
0:000> ? 5a
Evaluate expression: 90 = 0000005a

在该示例中,断点0已被命中10次,断点1为90.