【发布时间】:2013-11-20 06:00:53
【问题描述】:
WinDbg 有条件执行命令的 .if 语句:
.if (Condition) { Commands } .else { Commands }
对于 Condition,不能使用 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}
【问题讨论】:
标签: windbg