有没有办法导入/导出本机断点?
我现在所做的是有一个有趣的断点记事本,如下所示。
bp foo!bar;bp foo!barbar; bp foo!barbarbar; .................
我每次手动运行上面的操作,并将其从记事本粘贴到windbg的命令窗口。
P.S。有没有办法告诉windbg直接运行记事本文件?而不是复制和粘贴?
谢谢,
答案 0 :(得分:3)
如果要保存断点但不想使用工作空间并重新使用断点
这样做
.logopen break.txt;.bpcmds;.logclose
然后当你想重新申请时
只需$<break.txt
样本
0:000> bl
0:000> bp calc!WinMain
0:000> bp calc!atanhrat
0:000> bu ntdll!ZwCreateIoCompletion ".echo foo"
0:000> bu ntdll!ZwCreateIoCompletion ".echo foo;gc"
breakpoint 2 redefined
0:000> bp calc!xorrat
0:000> g
Breakpoint 0 hit
calc!WinMain:
01001f51 b8ee280101 mov eax,offset calc!terminate+0x6 (010128ee)
0:000> .logopen break.txt
Opened log file 'break.txt'
0:000> .bpcmds
bp0 0x01001f51 ;
bp1 0x0101090e ;
bu2 ntdll!ZwCreateIoCompletion ".echo foo;gc";
bp3 0x0100c474 ;
0:000> .logclose
Closing open log file break.txt
0:000> .restart
ntdll!DbgBreakPoint:
7c90120e cc int 3
0:000> bl <<<<<<<<<<<<<<<<<---------------- no breakpoints in new calc.exe
0:000> $<break.txt
0:000> Opened log file 'break.txt'
^ Syntax error in 'Opened log file 'break.txt''
0:000> 0:000> .bpcmds
^ Syntax error in '0:000> .bpcmds'
0:000> bp0 0x01001f51 ;
0:000> bp1 0x0101090e ;
0:000> bu2 ntdll!ZwCreateIoCompletion ".echo foo;gc";
0:000> bp3 0x0100c474 ;
0:000> 0:000> .logclose
^ Syntax error in '0:000> .logclose'
0:000> bl <<<<<<<<<<<<<<<<<--------------------------- all old bps restored
0 e 01001f51 0001 (0001) 0:**** calc!WinMain
1 e 0101090e 0001 (0001) 0:**** calc!atanhrat
2 e 7c90d0be 0001 (0001) 0:**** ntdll!NtCreateIoCompletion ".echo foo;gc"
3 e 0100c474 0001 (0001) 0:**** calc!xorrat
答案 1 :(得分:2)