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::DoStackSnapshot
geçirildiyse geçerlidir.
clientData
[in] İstemci verilerinin işaretçisi, doğrudan içinden ICorProfilerInfo2::DoStackSnapshot
geçirilir.
Açıklamalar
StackSnapshotCallback
İşlev, profil oluşturucu yazıcısı tarafından uygulanır. içinde StackSnapshotCallback
yapı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