2011-09-26 17 views
8

GC yığın yolsuzluk hata ayıklanıyor ve WinDbg + PageHeap + AppVerifier + GCStress altında programı çalıştırmayı denemek istediğim adıma geldim. .. Windows 7'de GCStress nasıl açılır?

reg.exe add "HKLM\SOFTWARE\Microsoft\.NETFramework" /f /v HeapVerify /t REG_DWORD /d 1 
reg.exe add "HKLM\SOFTWARE\Microsoft\.NETFramework" /f /v StressLog /t REG_DWORD /d 1 
reg.exe add "HKLM\SOFTWARE\Microsoft\.NETFramework" /f /v GCStress /t REG_DWORD /d 3 
reg.exe add "HKLM\SOFTWARE\Microsoft\.NETFramework" /f /v FastGcStress /t REG_DWORD /d 2 

(Ben bu yöntemi çalışıyorum lansman sonsuza program alır ben son iki girdileri silindi:

ben böyle GCStress etkinleştirebilirsiniz maddeye Software crash: faulting module mscorwks.dll, version 1.1.4322.2379 bulundu kayıt muhtemelen bir şey yaklaşımı kendisi ile yanlış, o iş için)

Veya diğer bir yöntem tarif Access Violation in .NET 4 Runtime in gc_heap::garbage_collect with no unmanaged modules makaleye:.

(DWORD) StressLog = 1 
(DWORD) LogFacility = 0xffffffff 
(DWORD) StressLogSize = 65536 

Başka hangi şekilde doğru var veya başka bir doğru yönlü?

+0

Soruyu anlamıyorum. Nasıl açılacağını soruyorsunuz, sonra bunu ilk yöntemle etkinleştirebileceğinizi belirttiniz, ancak işe yaramıyor. İkinci yöntem işe yarıyor mu? –

+0

@KierenJohnstone, ikinci yöntemi denemedim ve bunların doğru olup olmadığından emin değilim. GCStress ile ilgili web üzerinde bulduğum her şey ve konuya yetkin kişilerden tavsiyede bulunmak istiyorum. İlk yöntemin yavaş olduğunu yazdım çünkü muhtemelen belirtilen kayıt defteri anahtarlarının diğer değerlerini ayarlayarak daha hızlı yapılabileceğini düşünebilirim. –

cevap

0

I searched GCStress on Koders. Anlamak için en iyi yol ortaya çıktı: .NET's source code:

enum GCStressFlags { 
    GCSTRESS_NONE    = 0, 
    GCSTRESS_ALLOC    = 1, // GC on all allocations and 'easy' places 
    GCSTRESS_TRANSITION   = 2, // GC on transitions to preemtive GC 
    GCSTRESS_INSTR_JIT   = 4, // GC on every allowable JITed instruction 
    GCSTRESS_INSTR_NGEN   = 8, // GC on every allowable NGEN instruction 
    GCSTRESS_UNIQUE    = 16, // GC only on a unique stack trace 
};