Aracılığıyla paylaş


StackSnapshotCallback İşlevi

ICorProfilerInfo2::D oStackSnapshot yöntemi tarafından başlatılan yığın yürüyüşü sırasında profil oluşturucuya yönetilen çerçeveler ve yığındaki yönetilmeyen çerçevelerin her çalıştırması hakkında bilgi sağlar.

Sözdizimi

HRESULT __stdcall StackSnapshotCallback (  
    [in] FunctionID funcId,  
    [in] UINT_PTR ip,  
    [in] COR_PRF_FRAME_INFO frameInfo,  
    [in] ULONG32 contextSize,  
    [in] BYTE context[],  
    [in] void *clientData  
);  

Parametreler

funcId
[in] Bu değer sıfırsa, bu geri çağırma yönetilmeyen çerçevelerin çalıştırılmasına yöneliktir; aksi takdirde, yönetilen bir işlevin tanımlayıcısı ve bu geri çağırma yönetilen bir çerçeve içindir.

ip
[in] Çerçevedeki yerel kod yönerge işaretçisinin değeri.

frameInfo
[in] COR_PRF_FRAME_INFO Yığın çerçevesi hakkındaki bilgilere başvuran bir değer. Bu değer yalnızca bu geri çağırma sırasında kullanım için geçerlidir.

contextSize
[in] parametresi tarafından context başvurulan yapının boyutuCONTEXT.

context
[in] Bu çerçeve için CPU'nun durumunu temsil eden win32 CONTEXT yapısının işaretçisi.

context parametresi yalnızca COR_PRF_SNAPSHOT_CONTEXT bayrağı içinde ICorProfilerInfo2::DoStackSnapshotgeçirildiyse geçerlidir.

clientData
[in] İstemci verilerinin işaretçisi, doğrudan içinden ICorProfilerInfo2::DoStackSnapshotgeçirilir.

Açıklamalar

StackSnapshotCallback İşlev, profil oluşturucu yazıcısı tarafından uygulanır. içinde StackSnapshotCallbackyapılan işin karmaşıklığını sınırlamanız gerekir. Örneğin, zaman uyumsuz bir şekilde kullanırken ICorProfilerInfo2::DoStackSnapshot hedef iş parçacığı kilitleri tutuyor olabilir. içindeki StackSnapshotCallback kod aynı kilitleri gerektiriyorsa bir kilitlenme olabilir.

yöntemi, ICorProfilerInfo2::DoStackSnapshot yönetilen çerçeve başına bir kez veya yönetilmeyen çerçeve çalıştırması başına bir kez işlevini çağırır StackSnapshotCallback . Yönetilmeyen çerçeve çalıştırması için çağrılırsa StackSnapshotCallback , profil oluşturucu kendi yönetilmeyen yığın yürüyüşünü gerçekleştirmek için yazmaç bağlamını (parametresi tarafından context başvurulan) kullanabilir. Bu durumda Win32 CONTEXT yapısı, yönetilmeyen çerçevelerin çalıştırılması içinde en son gönderilen çerçevenin CPU durumunu temsil eder. Win32 CONTEXT yapısı tüm yazmaçlar için değerler içerse de, yalnızca yığın işaretçisi yazmaç, çerçeve işaretçisi yazmaç, yönerge işaretçisi yazmaç ve kalıcı olmayan (yani korunan) tamsayı yazmaçlarının değerlerini kullanmanız gerekir.

Gereksinimler

Platform: Bkz. Sistem Gereksinimleri.

Üstbilgi: CorProf.idl

Kitaplığı: CorGuids.lib

.NET Framework Sürümleri: 1.0 sürümünden itibaren kullanılabilir

Ayrıca bkz.