请教一个关于windbg脚本中别名替换的问题。

WinDbg

请教一个关于windbg脚本中别名替换的问题。


风继续吹 2016-05-02, 01:18 上午
"An alias consists of an alias name and an alias equivalent. When you use an alias name as part of a debugger command, the name is automatically replaced by the alias equivalent. This replacement occurs immediately, before the command is parsed or executed."  这段摘自windbg帮助文档。
以下是我的脚本文件内容:
ad /q *
;aS MyVar 0x7b;
.block
{
    ;aS /x ${/v:MyVar}  ${MyVar}+0x1;
    .block
    {
        .printf "MyVar1=0x%x\n",${MyVar};
        .block
        {
            .printf "MyVar2=0x%x\n",${MyVar};
        }
        .printf "MyVar3=0x%x\n",${MyVar};
    }

    .block
    {
        .printf "MyVar4=0x%x\n",${MyVar};
    }

}
.block
{
    .printf "MyVar5=0x%x\n",${MyVar};
}

al;
以下是执行该脚本后的结果输出:
0:000> $$><c:\windbg.wds
MyVar1=0x7b
MyVar2=0x7b
MyVar3=0x7b
MyVar4=0x7b
MyVar5=0x7c
  Alias            Value  
 -------          ------- 
 MyVar            0x7c
为什么不是输出MyVar1=0x7c、MyVar2=0x7c、MyVar3=0x7c、MyVar4=0x7c、MyVar5=0x7c啊?

Re: 请教一个关于windbg脚本中别名替换的问题。


悬崖遛马 2016-05-05, 10:14 上午
瞎猜一下, 是不是 .block 导致其中内容具有‘原子性',一次性替换了。
再最后一个block之后再加几个block,穿插修改变量值试试
以前用过是好用的,转眼快两年没调过了,遗忘中

Re: 请教一个关于windbg脚本中别名替换的问题。


风继续吹 2016-05-06, 14:29 下午
这个也说不通啊!

Powered by Community Server Powered by CnForums.Net