FunctionTailcall3WithInfo 함수
현재 실행 중인 함수가 다른 함수에 대해 마무리 호출을 수행하려고 한다는 것을 프로파일러에 알리고 스택 프레임을 검색하기 위해 ICorProfilerInfo3::GetFunctionTailcall3Info 메서드에 전달할 수 있는 핸들을 제공합니다.
구문
void __stdcall FunctionTailcall3WithInfo(
[in] FunctionIDOrClientID functionIDOrClientID,
[in] COR_PRF_ELT_INFO eltInfo);
매개 변수
functionIDOrClientID
[in] 마무리 호출을 수행하려는 현재 실행 중인 함수의 식별자입니다.
eltInfo
[in] 지정된 스택 프레임에 대한 정보를 나타내는 불투명 핸들입니다. 이 핸들은 전달된 콜백 동안에만 유효합니다.
설명
FunctionTailcall3WithInfo
콜백 메서드는 함수가 호출될 때 프로파일러에 알리고 프로파일러가 ICorProfilerInfo3::GetFunctionTailcall3Info 메서드를 사용하여 스택 프레임을 검사할 수 있도록 합니다. 스택 프레임 정보에 액세스하려면 COR_PRF_ENABLE_FRAME_INFO
플래그를 설정해야 합니다. 프로파일러는 ICorProfilerInfo::SetEventMask 메서드를 사용하여 이벤트 플래그를 설정한 다음 ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo 메서드를 사용하여 이 함수의 구현을 등록할 수 있습니다.
FunctionTailcall3WithInfo
함수는 콜백이며, 구현해야 합니다. 구현하려면 __declspec(naked)
스토리지 클래스 특성을 사용해야 합니다.
실행 엔진은 이 함수를 호출하기 전에 레지스터를 저장하지 않습니다.
입력 시 FPU(부동 소수점 유닛)의 레지스터를 포함하여 사용하는 모든 레지스터를 저장해야 합니다.
종료 시 호출자가 푸시한 모든 매개 변수를 제거하여 스택을 복원해야 합니다.
가비지 수집이 지연되므로 FunctionTailcall3WithInfo
구현을 차단해서는 안 됩니다. 스택이 가비지 수집 친화적 상태가 아닐 수 있으므로 구현 시 가비지 수집을 시도해서는 안 됩니다. 가비지 수집이 시도되면 런타임은 FunctionTailcall3WithInfo
가 반환될 때까지 차단됩니다.
또한 FunctionTailcall3WithInfo 함수는 관리 코드를 호출하거나 어떤 식으로든 관리 메모리 할당을 일으키지 않아야 합니다.
요구 사항
플랫폼:시스템 요구 사항을 참조하세요.
헤더: CorProf.idl
라이브러리: CorGuids.lib
.NET Framework 버전: 2.0부터 사용 가능
참고 항목
.NET