2009-02-28 12 views
5

私はFooと呼ばれる型を持っていて、lengthというフィールドを持っています。私はWindbgで、管理されたヒープのFoo型のすべてのオブジェクトインスタンスの長さフィールドをダンプする単一のループ文を書きたいと思っていますか?事前にこのようにWindbgにループを書く方法は?

おかげで、 ジョージ

+0

非常に良い答えはこちら:http://stackoverflow.com/questions/3926562/inspect-field-on-all-instances-in-memory-dump – Bryan

答えて

3

は、ここで私がテストしていないスクリプトですが、あなたのためにトリックを行う可能性があります。私はこの1つのトリックは、長さプロパティは主Fooの基準からオフセットされているバイトの数を把握して、 『から0xC』を交換するdumping out all session variables on the heap for ASP.net.

r @$t0=0; 

$$ Loop to get all foo's 
.foreach (CurrentFoo {!dumpheap -type George.George2.Foo -short}){ 
    $$ Increment # of Foo's 
    r @$t0 = @$t0+1 

    .printf "Length:\t%d\n", poi(${CurrentFoo}+0xc); 
} 
.printf "Number of Foo's: %d\n\n\n\n\n\n\n\n\n", @$t0; 

ためテススクリプトの外に基づいてprintf行は正しいオフセットバイト数で表示されます。

Fooのいずれかで!dumpobjectを実行し、その構造を調べるだけで、これを行うことができます。

希望に役立ちます。

関連する問題