FunctionTailcall3WithInfo İşlevi
Şu anda yürütülen işlevin başka bir işleve kuyruk çağrısı yapmak üzere olduğunu profil oluşturucuya bildirir ve yığın çerçevesini almak için ICorProfilerInfo3::GetFunctionTailcall3Info yöntemine geçirilebilen bir tanıtıcı sağlar.
Sözdizimi
void __stdcall FunctionTailcall3WithInfo(
[in] FunctionIDOrClientID functionIDOrClientID,
[in] COR_PRF_ELT_INFO eltInfo);
Parametreler
functionIDOrClientID
[in] Kuyruk çağrısı yapmak üzere olan yürütülmekte olan işlevin tanımlayıcısı.
eltInfo
[in] Belirli bir yığın çerçevesi hakkındaki bilgileri temsil eden opak bir tanıtıcı. Bu tanıtıcı yalnızca geçirildiği geri çağırma sırasında geçerlidir.
Açıklamalar
FunctionTailcall3WithInfo
Geri çağırma yöntemi, işlevler çağrıldığında profil oluşturucuya bildirimde bulunur ve profil oluşturucunun yığın çerçevesini incelemek için ICorProfilerInfo3::GetFunctionTailcall3Info yöntemini kullanmasına izin verir. Yığın çerçevesi bilgilerine erişmek için bayrağının COR_PRF_ENABLE_FRAME_INFO
ayarlanması gerekir. Profil oluşturucu, olay bayraklarını ayarlamak için ICorProfilerInfo::SetEventMask yöntemini kullanabilir ve ardından bu işlevi uygulamanızı kaydetmek için ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo yöntemini kullanabilir.
FunctionTailcall3WithInfo
İşlev bir geri çağırmadır; bunu uygulamanız gerekir. Uygulamanın depolama sınıfı özniteliğini __declspec(naked)
kullanması gerekir.
Yürütme altyapısı bu işlevi çağırmadan önce hiçbir kayıt kaydetmez.
Girişte, kayan nokta birimindeki (FPU) olanlar da dahil olmak üzere kullandığınız tüm yazmaçları kaydetmeniz gerekir.
Çıkışta, çağıranı tarafından gönderilen tüm parametreleri çıkararak yığını geri yüklemeniz gerekir.
uygulaması FunctionTailcall3WithInfo
, çöp toplamayı geciktireceğinden engellememelidir. Yığın çöp toplama dostu bir durumda olmadığından uygulama çöp toplama denememelidir. Bir çöp toplama denenirse, çalışma zamanı dönene kadar FunctionTailcall3WithInfo
engeller.
Ayrıca FunctionTailcall3WithInfo işlevi yönetilen kodu çağırmamalıdır veya yönetilen bellek ayırmaya hiçbir şekilde neden olmamalıdır.
Gereksinimler
Platform: Bkz. Sistem Gereksinimleri.
Üstbilgi: CorProf.idl
Kitaplığı: CorGuids.lib
.NET Framework Sürümleri: 2.0 sürümünden itibaren kullanılabilir
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin