Megosztás a következőn keresztül:


FüggvényLeave2 függvény

Értesíti a profilozót arról, hogy egy függvény visszatér a hívóhoz, és információt nyújt a veremkeretről és a függvény visszatérési értékéről.

Szintaxis

void __stdcall FunctionLeave2 (  
    [in]  FunctionID                        funcId,  
    [in]  UINT_PTR                          clientData,  
    [in]  COR_PRF_FRAME_INFO                func,  
    [in]  COR_PRF_FUNCTION_ARGUMENT_RANGE  *retvalRange  
);  

Paraméterek

funcId [in] A visszaadott függvény azonosítója.

clientData [in] Az újraképezett függvény azonosítója, amelyet a profilozó korábban a FunctionIDMapper függvénnyel adott meg.

func [in] Egy COR_PRF_FRAME_INFO érték, amely a veremkerettel kapcsolatos információkra mutat.

A profilelőnek ezt átlátszatlan leíróként kell kezelnie, amelyet vissza lehet adni a végrehajtó motornak az ICorProfilerInfo2::GetFunctionInfo2 metódusban.

retvalRange [in] Egy COR_PRF_FUNCTION_ARGUMENT_RANGE szerkezetre mutató mutató, amely meghatározza a függvény visszatérési értékének memóriahelyét.

A visszaadott értékadatok eléréséhez be kell állítani a COR_PRF_ENABLE_FUNCTION_RETVAL jelzőt. A profilozó az ICorProfilerInfo::SetEventMask metódust használhatja az eseményjelölők beállításához.

Megjegyzések

A és retvalRange paraméter func értékei nem érvényesek a FunctionLeave2 függvény visszatérése után, mert az értékek megváltozhatnak vagy megsemmisülhetnek.

A FunctionLeave2 függvény visszahívás; implementálnia kell. Az implementációnak a __declspec(naked) storage-class attribútumot kell használnia.

A végrehajtási motor nem menti a regisztereket a függvény meghívása előtt.

  • A bejegyzéskor mentenie kell az összes használt regisztert, beleértve a lebegőpontos egységben (FPU) lévőket is.

  • Kilépéskor vissza kell állítania a vermet a hívó által leküldett összes paraméter kiugraásával.

A megvalósítása FunctionLeave2 nem tilthatja le, mert késlelteti a szemétgyűjtést. Az implementáció nem kísérelhet meg szemétgyűjtést, mert előfordulhat, hogy a verem nem szemétgyűjtés-barát állapotban van. Ha szemétgyűjtést kísérel meg, a futtatókörnyezet addig blokkolódik, amíg vissza nem FunctionLeave2 tér.

Emellett a FunctionLeave2 függvény nem hívhat be felügyelt kódot, és semmilyen módon nem okozhat felügyelt memóriafoglalást.

Követelmények

Platformok: Lásd: Rendszerkövetelmények.

Fejléc: CorProf.idl

Könyvtár: CorGuids.lib

.NET-keretrendszer verziók: 2.0 óta érhető el

Lásd még