프로파일러가 구독한 이벤트가 발생할 때 CLR(공용 언어 런타임)에서 코드 프로파일러에 알리는 데 사용되는 메서드를 제공합니다.
메서드
| 메서드 | Description |
|---|---|
| AppDomainCreationFinished 메서드 | 애플리케이션 도메인이 생성되었음을 프로파일러에 알릴 수 있습니다. |
| AppDomainCreationStarted 메서드 | 애플리케이션 도메인이 생성되고 있음을 프로파일러에 알릴 수 있습니다. |
| AppDomainShutdownFinished 메서드 | 애플리케이션 도메인이 프로세스에서 언로드되었음을 프로파일러에 알릴 수 있습니다. |
| AppDomainShutdownStarted 메서드 | 애플리케이션 도메인이 프로세스에서 언로드되고 있음을 프로파일러에 알릴 수 있습니다. |
| AssemblyLoadFinished 메서드 | 어셈블리 로드가 완료되었음을 프로파일러에 알릴 수 있습니다. |
| AssemblyLoadStarted 메서드 | 어셈블리가 로드되고 있음을 프로파일러에 알릴 수 있습니다. |
| AssemblyUnloadFinished 메서드 | 어셈블리가 언로드되었음을 프로파일러에 알릴 수 있습니다. |
| AssemblyUnloadStarted 메서드 | 어셈블리가 언로드되고 있음을 프로파일러에 알릴 수 있습니다. |
| ClassLoadFinished 메서드 | 클래스 로드가 완료되었음을 프로파일러에 알릴 수 있습니다. |
| ClassLoadStarted 메서드 | 클래스가 로드되고 있음을 프로파일러에 알릴 수 있습니다. |
| ClassUnloadFinished 메서드 | 클래스가 언로드를 완료했음을 프로파일러에 알릴 수 있습니다. |
| ClassUnloadStarted 메서드 | 클래스가 언로드되고 있음을 프로파일러에 알릴 수 있습니다. |
| COMClassicVTableCreated 메서드 | 프로파일러에 지정된 IID 및 클래스에 대한 RCW(런타임 호출 가능 래퍼)가 생성되었음을 알릴 수 있습니다. |
| COMClassicVTableDestroyed 메서드 | RCW가 제거되고 있음을 프로파일러에 알릴 수 있습니다. |
| ExceptionCatcherEnter 메서드 | 해당 블록에 컨트롤이 전달되고 있음을 프로파일러에 catch 알릴 수 있습니다. |
| ExceptionCatcherLeave 메서드 | 해당 블록에서 컨트롤이 전달되고 있음을 프로파일러에 알릴 수 catch 있습니다. |
| ExceptionCLRCatcherExecute 메서드 | .NET Framework 버전 2.0에서는 사용되지 않습니다. |
| ExceptionCLRCatcherFound 메서드 | .NET Framework 2.0에서는 사용되지 않습니다. |
| ExceptionOSHandlerEnter 메서드 | 구현되지 않았습니다. 관리되지 않는 예외 정보가 필요한 프로파일러가 다른 방법을 통해 이 정보를 가져와야 합니다. |
| ExceptionOSHandlerLeave 메서드 | 구현되지 않았습니다. 관리되지 않는 예외 정보가 필요한 프로파일러가 다른 방법을 통해 이 정보를 가져와야 합니다. |
| ExceptionSearchCatcherFound 메서드 | 예외 처리의 검색 단계에서 throw된 예외에 대한 처리기를 찾았는지 프로파일러에 알릴 수 있습니다. |
| ExceptionSearchFilterEnter 메서드 | 사용자 필터가 실행 중임을 프로파일러에 알릴 수 있습니다. |
| ExceptionSearchFilterLeave 메서드 | 사용자 필터의 실행이 막 완료되었음을 프로파일러에 알릴 수 있습니다. |
| ExceptionSearchFunctionEnter 메서드 | 예외 처리의 검색 단계가 함수에 들어갔다는 것을 프로파일러에 알릴 수 있습니다. |
| ExceptionSearchFunctionLeave 메서드 | 예외 처리의 검색 단계가 함수 검색을 완료했음을 프로파일러에 알릴 수 있습니다. |
| ExceptionThrown 메서드 | 예외가 throw되었음을 프로파일러에 알릴 수 있습니다. |
| ExceptionUnwindFinallyEnter 메서드 | 예외 처리의 해제 단계가 지정된 함수에 포함된 절을 finally 입력하고 있음을 프로파일러에 알릴 수 있습니다. |
| ExceptionUnwindFinallyLeave 메서드 | 예외 처리의 해제 단계에서 절을 남겼다는 것을 프로파일러에 알릴 수 있습니다 finally . |
| ExceptionUnwindFunctionEnter 메서드 | 예외 처리의 해제 단계가 함수에 들어갔다는 것을 프로파일러에 알릴 수 있습니다. |
| ExceptionUnwindFunctionLeave 메서드 | 예외 처리의 해제 단계가 함수 해제를 완료했음을 프로파일러에 알릴 수 있습니다. |
| FunctionUnloadStarted 메서드 | 런타임이 함수를 언로드하기 시작했음을 프로파일러에 알릴 수 있습니다. |
| Initialize 메서드 | 새 CLR 애플리케이션이 시작될 때마다 프로파일러를 초기화하기 위해 호출됩니다. |
| JITCachedFunctionSearchFinished 메서드 | 이전에 NGen.exe사용하여 컴파일된 함수에 대한 검색이 완료되었음을 프로파일러에 알릴 수 있습니다. |
| JITCachedFunctionSearchStarted 메서드 | 이전에 NGen.exe사용하여 컴파일된 함수에 대한 검색이 시작되었음을 프로파일러에 알릴 수 있습니다. |
| JITCompilationFinished 메서드 | JIT 컴파일러가 함수 컴파일을 완료했음을 프로파일러에 알릴 수 있습니다. |
| JITCompilationStarted 메서드 | 프로파일러에 JIT(Just-In-Time) 컴파일러가 함수를 컴파일하기 시작했음을 알릴 수 있습니다. |
| JITFunctionPitched 메서드 | JIT 컴파일된 함수가 메모리에서 제거되었음을 프로파일러에 알릴 수 있습니다. |
| JITInlining 메서드 | JIT 컴파일러가 다른 함수에 맞춰 함수를 삽입하려고 했음을 프로파일러에 알릴 수 있습니다. |
| ManagedToUnmanagedTransition 메서드 | 관리 코드에서 관리되지 않는 코드로의 전환이 발생했음을 프로파일러에 알릴 수 있습니다. |
| ModuleAttachedToAssembly 메서드 | 모듈이 부모 어셈블리에 연결되고 있음을 프로파일러에 알릴 수 있습니다. |
| ModuleLoadFinished 메서드 | 모듈 로드가 완료되었음을 프로파일러에 알릴 수 있습니다. |
| ModuleLoadStarted 메서드 | 모듈이 로드되고 있음을 프로파일러에 알릴 수 있습니다. |
| ModuleUnloadFinished 메서드 | 모듈의 언로드가 완료되었음을 프로파일러에 알릴 수 있습니다. |
| ModuleUnloadStarted 메서드 | 모듈이 언로드되고 있음을 프로파일러에 알릴 수 있습니다. |
| MovedReferences 메서드 | 가비지 수집 중에 이동된 개체 참조에 대해 프로파일러에 알릴 수 있습니다. |
| ObjectAllocated 메서드 | 힙 내의 메모리가 개체에 할당되었음을 프로파일러에 알릴 수 있습니다. |
| ObjectReferences 메서드 | 지정된 개체가 참조하는 메모리의 개체에 대해 프로파일러에 알릴 수 있습니다. |
| ObjectsAllocatedByClass 메서드 | 이전 가비지 수집 이후 생성된 지정된 각 클래스의 인스턴스 수에 대해 프로파일러에 알릴 수 있습니다. |
| RemotingClientInvocationFinished 메서드 | 원격 호출이 클라이언트에서 완료될 때 실행되었음을 프로파일러에 알릴 수 있습니다. |
| RemotingClientInvocationStarted 메서드 | 원격 호출이 시작되었음을 프로파일러에 알릴 수 있습니다. |
| RemotingClientReceivingReply 메서드 | 원격 호출의 서버 쪽 부분이 완료되었으며 클라이언트가 현재 수신 중이며 회신을 처리하려고 했음을 프로파일러에 알립니다. |
| RemotingClientSendingMessage 메서드 | 클라이언트가 서버에 요청을 보내고 있음을 프로파일러에 알릴 수 있습니다. |
| RemotingServerInvocationReturned 메서드 | 원격 메서드 호출 요청에 대한 응답으로 프로세스가 메서드 호출을 완료했음을 프로파일러에 알릴 수 있습니다. |
| RemotingServerInvocationStarted 메서드 | 원격 메서드 호출 요청에 대한 응답으로 프로세스가 메서드를 호출하고 있음을 프로파일러에 알릴 수 있습니다. |
| RemotingServerReceivingMessage 메서드 | 프로세스가 원격 메서드 호출 또는 활성화 요청을 수신하고 있음을 프로파일러에 알릴 수 있습니다. |
| RemotingServerSendingReply 메서드 | 프로세스가 원격 메서드 호출 요청 처리를 완료했으며 채널을 통해 회신을 전송하려고 했음을 프로파일러에 알립니다. |
| RootReferences 메서드 | 가비지 수집 후 루트 참조에 대한 정보를 프로파일러에 알릴 수 있습니다. |
| RuntimeResumeFinished 메서드 | 런타임이 모든 런타임 스레드를 다시 시작하고 정상 작업으로 돌아왔다는 것을 프로파일러에 알릴 수 있습니다. |
| RuntimeResumeStarted 메서드 | 런타임이 모든 런타임 스레드를 재개하고 있음을 프로파일러에 알릴 수 있습니다. |
| RuntimeSuspendAborted 메서드 | 런타임이 발생한 런타임 일시 중단을 중단했음을 프로파일러에 알릴 수 있습니다. |
| RuntimeSuspendFinished 메서드 | 런타임이 모든 런타임 스레드의 일시 중단을 완료했음을 프로파일러에 알릴 수 있습니다. |
| RuntimeSuspendStarted 메서드 | 런타임이 모든 런타임 스레드를 일시 중단하려고 했음을 프로파일러에 알릴 수 있습니다. |
| RuntimeThreadResumed 메서드 | 지정된 스레드가 일시 중단된 후 다시 시작되었음을 프로파일러에 알릴 수 있습니다. |
| RuntimeThreadSuspended 메서드 | 지정된 스레드가 일시 중단되었거나 일시 중단될 예정임을 프로파일러에 알릴 수 있습니다. |
| Shutdown 메서드 | 애플리케이션이 종료되고 있음을 프로파일러에 알릴 수 있습니다. |
| ThreadAssignedToOSThread 메서드 | 관리되는 스레드가 특정 OS(운영 체제) 스레드를 사용하여 구현되고 있음을 프로파일러에 알릴 수 있습니다. |
| ThreadCreated 메서드 | 스레드가 생성되었음을 프로파일러에 알릴 수 있습니다. |
| ThreadDestroyed 메서드 | 스레드가 제거되었음을 프로파일러에 알릴 수 있습니다. |
| UnmanagedToManagedTransition 메서드 | 프로파일러에 관리되지 않는 코드에서 관리 코드로의 전환이 발생했음을 알릴 수 있습니다. |
비고
CLR은 프로파일러가 구독한 이벤트가 발생할 때 프로파일러에 알리기 위해 (또는 ICorProfilerCallback2) 인터페이스의 메서드 ICorProfilerCallback 를 호출합니다. CLR이 코드 프로파일러와 통신하는 기본 콜백 인터페이스입니다.
코드 프로파일러가 인터페이스의 ICorProfilerCallback 메서드를 구현해야 합니다. .NET Framework 버전 2.0 이상의 경우 프로파일러도 메서드를 ICorProfilerCallback2 구현해야 합니다. 각 메서드 구현은 성공 시 또는 실패 시 E_FAIL 값이 S_OK HRESULT를 반환해야 합니다. 현재 CLR은 ICorProfilerCallback::ObjectReferences를 제외한 각 콜백에서 반환되는 HRESULT를 무시합니다.
Microsoft Windows 레지스트리에서 코드 프로파일러가 해당 및 ICorProfilerCallback2 인터페이스를 구현하는 COM(Component Object Model) 개체를 ICorProfilerCallback 등록해야 합니다. 코드 프로파일러는 ICorProfilerInfo::SetEventMask를 호출하여 알림을 수신하려는 이벤트를 구독합니다. 이 작업은 일반적으로 프로파일러의 ICorProfilerCallback::Initialize 구현에서 수행됩니다. 그러면 이벤트가 발생하거나 실행 중인 런타임 프로세스에서 방금 발생한 경우 프로파일러가 런타임에서 알림을 받을 수 있습니다.
비고
프로파일러가 단일 COM 개체를 등록합니다. 프로파일러가 .NET Framework 버전 1.0 또는 1.1을 대상으로 하는 경우 해당 COM 개체는 메서드 ICorProfilerCallback만 구현해야 합니다. .NET Framework 버전 2.0 이상을 대상으로 하는 경우 COM 개체도 메서드 ICorProfilerCallback2를 구현해야 합니다.
요구 사항
플랫폼:시스템 요구 사항을 참조하세요.
머리글: CorProf.idl, CorProf.h
도서관: CorGuids.lib
.NET Framework 버전: 1.0부터 사용 가능
참고하십시오
.NET