我设置了以下断点:
bp MSPTLS!LsCreateLine 100
程序在断点达到100次之前崩溃。在崩溃后我bl
,我得到以下内容:
0 e 5dca4b62 0072 (0100) 0:**** MSPTLS!LsCreateLine
我从这个信息中假设在崩溃之前突破点被击中了72次。
然而,当我做bp MSPTLS!LsCreateLine 80
时,我能够在崩溃之前击中断点,告诉我在崩溃之前断点被击中超过72次。这72不表示断点达到了多少次?
答案 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.