Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menyediakan profiler dengan informasi tentang setiap bingkai terkelola dan setiap eksekusi bingkai yang tidak terkelola pada tumpukan selama proses penumpukan, yang dimulai oleh metode ICorProfilerInfo2::DoStackSnapshot.
Sintaks
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
);
Parameter
funcId
[in] Jika nilai ini nol, panggilan balik ini untuk menjalankan bingkai yang tidak terkelola; jika tidak, ini adalah pengidentifikasi fungsi terkelola dan panggilan balik ini untuk bingkai terkelola.
ip
[in] Nilai penunjuk instruksi kode asli dalam bingkai.
frameInfo
[in] Nilai COR_PRF_FRAME_INFO yang mereferensikan informasi tentang bingkai tumpukan. Nilai ini hanya berlaku untuk digunakan selama panggilan balik ini.
contextSize
[in] Ukuran struktur CONTEXT, yang dirujuk oleh parameter context.
context
[in] Penunjuk ke struktur CONTEXT Win32 yang mewakili keadaan CPU untuk bingkai ini.
Parameter context hanya valid jika bendera COR_PRF_SNAPSHOT_CONTEXT diteruskan dalam ICorProfilerInfo2::DoStackSnapshot.
clientData
[in] Penunjuk ke data klien, yang diteruskan langsung dari ICorProfilerInfo2::DoStackSnapshot.
Keterangan
Fungsi StackSnapshotCallback diterapkan oleh penulis profiler. Anda harus membatasi kompleksitas pekerjaan yang dilakukan di StackSnapshotCallback. Misalnya, saat menggunakan ICorProfilerInfo2::DoStackSnapshot dengan cara asinkron, utas target mungkin memegang kunci. Jika kode di dalam StackSnapshotCallback memerlukan kunci yang sama, kebuntuan dapat terjadi.
Metode ICorProfilerInfo2::DoStackSnapshot memanggil fungsi StackSnapshotCallback sekali per bingkai terkelola atau sekali per eksekusi bingkai yang tidak dikelola. Jika StackSnapshotCallback dipanggil untuk menjalankan bingkai yang tidak terkelola, profiler dapat menggunakan konteks register (direferensikan oleh parameter context) untuk melakukan proses penumpukan yang tidak terkelola milik mereka sendiri. Dalam hal ini, struktur CONTEXT Win32 mewakili keadaan CPU untuk bingkai yang terakhir didorong dalam menjalankan bingkai yang tidak terkelola. Meskipun struktur CONTEXT Win32 mencakup nilai untuk semua register, Anda hanya harus mengandalkan nilai register penunjuk tumpukan, register penunjuk bingkai, register penunjuk instruksi, dan register bilangan bulat nonvolatile (yaitu, yang dipertahankan).
Persyaratan
Platform: Lihat Persyaratan Sistem.
Header: CorProf.idl
Pustaka: CorGuids.lib
Versi .NET Framework: Tersedia mulai dari versi 1.0