0
我有以下遞歸的WinDBG腳本:遞歸WinDBG的腳本不工作
.if ($sicmp("${$arg1}", "-n") != 0)
{
r @$t0 = ${$arg1}
}
.if (@$t0)
{
r @$t1 = wo(@$t0+0x18)
.foreach /pS1 /ps1 (x {dq /c1 poi(@$t0+8)+0x10 [email protected]$t1})
{
.echo x
r @$t2 = x
.push /r /q
r @$t0 = poi(@$t2+0x28)
$$>a< ${$arg0} -n
.pop /r /q
}
}
代碼由這裏的例子啓發 - http://blogs.microsoft.co.il/sasha/2013/07/25/displaying-and-searching-stdmap-contents-in-windbg/#comment-2829748
的問題是,我不能從.foreach
中調用$$>a< ${$arg0} -n
身體 - 它與失敗別名已經定義錯誤。
有關如何克服這一點的任何想法?
你真的想以這種方式編寫腳本嗎?沒有機會讓PyKd啓動並運行? –
現在 - 是的。至於PyKd - 可能會晚一些。 – mark
我有更多問題。我正在探索的圖包含循環引用,所以爲了計算我需要緩存訪問一次的節點(我不想修改節點本身的內存)。不知道如何在純WinDBG中做到這一點。所以,我願意嘗試PyKd,但害怕設置。任何指針? – mark