Fungsi FunctionTailcall3WithInfo
Memberi tahu profiler bahwa fungsi yang sedang dijalankan akan melakukan panggilan ekor ke fungsi lain dan menyediakan handel yang dapat diteruskan ke metode ICorProfilerInfo3::GetFunctionTailcall3Info untuk mengambil bingkai tumpukan.
Sintaks
void __stdcall FunctionTailcall3WithInfo(
[in] FunctionIDOrClientID functionIDOrClientID,
[in] COR_PRF_ELT_INFO eltInfo);
Parameter
functionIDOrClientID
[in] Pengidentifikasi dari fungsi yang sedang dijalankan dan akan melakukan panggilan ekor.
eltInfo
[in] Handel buram yang mewakili informasi tentang bingkai tumpukan tertentu. Handel ini hanya berlaku selama panggilan balik yang diteruskan.
Keterangan
Metode panggilan balik FunctionTailcall3WithInfo
memberi tahu profiler saat fungsi dipanggil dan memungkinkan profiler menggunakan metode ICorProfilerInfo3::GetFunctionTailcall3Info untuk memeriksa bingkai tumpukan. Untuk mengakses informasi bingkai tumpukan, bendera COR_PRF_ENABLE_FRAME_INFO
harus diatur. Profiler dapat menggunakan metode ICorProfilerInfo::SetEventMask untuk mengatur bendera peristiwa, lalu menggunakan metode ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo untuk mendaftarkan penerapan anda atas fungsi ini.
Fungsi FunctionTailcall3WithInfo
adalah panggilan balik; Anda harus menerapkannya. Penerapan harus menggunakan atribut kelas penyimpanan __declspec(naked)
.
Mesin eksekusi tidak menyimpan register apa pun sebelum memanggil fungsi ini.
Saat masuk, Anda harus menyimpan semua register yang Anda gunakan, termasuk yang ada di floating-point unit (FPU).
Saat keluar, Anda harus memulihkan tumpukan dengan memunculkan semua parameter yang didorong oleh pemanggilnya.
Penerapan FunctionTailcall3WithInfo
tidak boleh memblokir karena akan menunda pengumpulan sampah. Penerapan tidak boleh mencoba pengumpulan sampah, karena tumpukannya mungkin tidak dalam keadaan yang ramah akan pengumpulan sampah. Jika pengumpulan sampah dicoba, runtime akan memblokir hingga FunctionTailcall3WithInfo
kembali.
Selain itu, fungsi FunctionTailcall3WithInfo tidak boleh memanggil kode terkelola atau menyebabkan alokasi memori terkelola dengan cara apa pun.
Persyaratan
Platform: Lihat Persyaratan Sistem.
Header: CorProf.idl
Pustaka: CorGuids.lib
Versi .NET Framework: Tersedia mulai dari 2.0
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk