Windbg控制台日志记录

时间:2012-11-15 13:10:58

标签: debugging windbg

是否可以有条件地或无条件地在Windbg控制台中记录某些内容。我可以改变我的源代码,但由于各种各样的resons包括checkout cerain文件,编辑代码,构建和部署,这是一个单调乏味的工作。这是非常乏味和非生产性的。 我正在寻找某些事情,例如条件断点,例如。

bp module!Class::funcname+0x0ff5E1 ".if(cond) {exp1;exp2 } .else {gc}" 

根据cond登录到windbg控制台(也许总是cond = 1)。我已经使用 ?? 命令来打印调试后的值,但是可以自动化,因为我需要很多值并且1比1执行它需要使用toime并且没有格式化!我是; ooking类似上面的条件断点或任何其他方式这样做。任何教程/样本肯定都会有所帮助。

编辑: 好吧,我想通过这样做的一种方式可能是

bp module!Class::Func+0x0FF5E1 ".if(cond) {.echo The value of variable ALPHA is; ?? ALPHA;gc} .else {.echo SomeOtherTextIfNeeded; gc;}:"

这可能很冗长但很好,因为我们必须在代码中添加等效的行以在日志中显示这些日志消息;在这里,我们不改变代码。 我有兴趣在这里看到其他方式:)

另一种可能是使用格式化输出;最重要的是,如果格式和变量名称可以从文件中读取,那就太棒了!!

1 个答案:

答案 0 :(得分:3)

您可以通过编程方式重复使用相同的日志来打开和关闭日志文件

bp module!Class::funcname+0x0ff5E1 ".if(cond) {.logappend c:\mylog.txt;exp2;.logclose;gc; } .else {gc}"