WinDbg具有.if语句,用于条件执行命令:
.if (Condition) { Commands } .else { Commands }
对于条件,无法使用WinDbg命令。是否有通过伪寄存器间接使用条件命令的方法?
需要完成的示例任务: 如果日志文件已经打开,则不执行任何操作。如果没有打开日志文件,则使用.logopen /t /u /d
使用.logfile,我可以找出日志是否已经打开。但是如何解析输出并将结果分配给伪寄存器呢?
欢迎使用其他没有伪寄存器的方法。
由于示例可能看起来不太有用,请考虑以下可通过脚本或.cmdtree窗口自动化的任务:
- 加载正确版本的SOS,例如:
.if (lm m clr == clr) { .loadby sos clr } .elseif (lm m mscorwks == mscorwks) {.loadby sos mscorwks}
- 我经常忘记做的事情,例如:
.if (| == myprocess) {.childdbg 1; .sympath+ mydir}