5
私はFooと呼ばれる型を持っていて、lengthというフィールドを持っています。私はWindbgで、管理されたヒープのFoo型のすべてのオブジェクトインスタンスの長さフィールドをダンプする単一のループ文を書きたいと思っていますか?事前にこのようにWindbgにループを書く方法は?
おかげで、 ジョージ
私はFooと呼ばれる型を持っていて、lengthというフィールドを持っています。私はWindbgで、管理されたヒープのFoo型のすべてのオブジェクトインスタンスの長さフィールドをダンプする単一のループ文を書きたいと思っていますか?事前にこのようにWindbgにループを書く方法は?
おかげで、 ジョージ
は、ここで私がテストしていないスクリプトですが、あなたのためにトリックを行う可能性があります。私はこの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を実行し、その構造を調べるだけで、これを行うことができます。
希望に役立ちます。
非常に良い答えはこちら:http://stackoverflow.com/questions/3926562/inspect-field-on-all-instances-in-memory-dump – Bryan