Windbg:计算崩溃前断点被击中的次数
Windbg: Figuring out how many times a breakpoint was hit before a crash
我设置了以下断点:
bp MSPTLS!LsCreateLine 100
100次断点前程序崩溃。当我在崩溃后执行 bl
时,我得到以下信息:
0 e 5dca4b62 0072 (0100) 0:**** MSPTLS!LsCreateLine
根据此信息,我假设断点在崩溃前被击中了 72 次。
然而,当我这样做时 bp MSPTLS!LsCreateLine 80
我能够在崩溃前到达断点,告诉我在崩溃前断点被击中了 72 次以上。这个72不是表示打了多少次断点吗?
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 次。
我设置了以下断点:
bp MSPTLS!LsCreateLine 100
100次断点前程序崩溃。当我在崩溃后执行 bl
时,我得到以下信息:
0 e 5dca4b62 0072 (0100) 0:**** MSPTLS!LsCreateLine
根据此信息,我假设断点在崩溃前被击中了 72 次。
然而,当我这样做时 bp MSPTLS!LsCreateLine 80
我能够在崩溃前到达断点,告诉我在崩溃前断点被击中了 72 次以上。这个72不是表示打了多少次断点吗?
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 次。