2009-02-28 14 views
5

Foo adında bir türüm var ve uzunluğu denilen bir alana sahip. Windbg'de yönetilen yığında Foo tipindeki tüm nesne örneklerinin uzunluk alanını boşaltacak tek bir döngü ifadesi yazmak istiyorum. peşinWindbg'de böyle bir döngü nasıl yazılır?

sayesinde George

+0

Burada çok iyi bir cevap: http://stackoverflow.com/questions/3926562/inspect-field-on-all-instances-in-memory-dump – Bryan

cevap

3

İşte ben test etmedim bir senaryo, ama sizin için hile yapabilir. Bu birine hile length özelliği ana Foo referanstan dengeleniyor bayt sayısını düşünmek ve içinde '0xc' yerini alacak 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; 

için Tess'in komut kapalı onu temelli Doğru ofset bayt sayısıyla printf hattı.

Bunu, Foo'larınızdan birinde bir yapmacık yaparak ve yapısına bakarak yapabilmelisiniz.

Bu yardımcı olur umarım.