COR_PRF_MONITOR 열거형
프로파일러가 구독하려는 동작, 기능 또는 이벤트를 지정하는 데 사용되는 값을 포함합니다.
구문
typedef enum {
COR_PRF_MONITOR_NONE = 0x00000000,
COR_PRF_MONITOR_FUNCTION_UNLOADS = 0x00000001,
COR_PRF_MONITOR_CLASS_LOADS = 0x00000002,
COR_PRF_MONITOR_MODULE_LOADS = 0x00000004,
COR_PRF_MONITOR_ASSEMBLY_LOADS = 0x00000008,
COR_PRF_MONITOR_APPDOMAIN_LOADS = 0x00000010,
COR_PRF_MONITOR_JIT_COMPILATION = 0x00000020,
COR_PRF_MONITOR_EXCEPTIONS = 0x00000040,
COR_PRF_MONITOR_GC = 0x00000080,
COR_PRF_MONITOR_OBJECT_ALLOCATED = 0x00000100,
COR_PRF_MONITOR_THREADS = 0x00000200,
COR_PRF_MONITOR_REMOTING = 0x00000400,
COR_PRF_MONITOR_CODE_TRANSITIONS = 0x00000800,
COR_PRF_MONITOR_ENTERLEAVE = 0x00001000,
COR_PRF_MONITOR_CCW = 0x00002000,
COR_PRF_MONITOR_REMOTING_COOKIE = 0x00004000 |
COR_PRF_MONITOR_REMOTING,
COR_PRF_MONITOR_REMOTING_ASYNC = 0x00008000 |
COR_PRF_MONITOR_REMOTING,
COR_PRF_MONITOR_SUSPENDS = 0x00010000,
COR_PRF_MONITOR_CACHE_SEARCHES = 0x00020000,
COR_PRF_ENABLE_REJIT = 0x00040000,
COR_PRF_ENABLE_INPROC_DEBUGGING = 0x00080000,
COR_PRF_ENABLE_JIT_MAPS = 0x00100000,
COR_PRF_DISABLE_INLINING = 0x00200000,
COR_PRF_DISABLE_OPTIMIZATIONS = 0x00400000,
COR_PRF_ENABLE_OBJECT_ALLOCATED = 0x00800000,
COR_PRF_MONITOR_CLR_EXCEPTIONS = 0x01000000,
COR_PRF_MONITOR_ALL = 0x0107FFFF,
COR_PRF_ENABLE_FUNCTION_ARGS = 0X02000000,
COR_PRF_ENABLE_FUNCTION_RETVAL = 0X04000000,
COR_PRF_ENABLE_FRAME_INFO = 0X08000000,
COR_PRF_ENABLE_STACK_SNAPSHOT = 0X10000000,
COR_PRF_USE_PROFILE_IMAGES = 0x20000000,
COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST
= 0x40000000,
COR_PRF_DISABLE_ALL_NGEN_IMAGES = 0x80000000,
COR_PRF_ALL = 0x8FFFFFFF,
COR_PRF_REQUIRE_PROFILE_IMAGE = COR_PRF_USE_PROFILE_IMAGES |
COR_PRF_MONITOR_CODE_TRANSITIONS |
COR_PRF_MONITOR_ENTERLEAVE,
COR_PRF_ALLOWABLE_AFTER_ATTACH = COR_PRF_MONITOR_THREADS |
COR_PRF_MONITOR_MODULE_LOADS |
COR_PRF_MONITOR_ASSEMBLY_LOADS |
COR_PRF_MONITOR_APPDOMAIN_LOADS |
COR_PRF_ENABLE_STACK_SNAPSHOT |
COR_PRF_MONITOR_GC |
COR_PRF_MONITOR_SUSPENDS |
COR_PRF_MONITOR_CLASS_LOADS |
COR_PRF_MONITOR_JIT_COMPILATION,
COR_PRF_MONITOR_IMMUTABLE = COR_PRF_MONITOR_CODE_TRANSITIONS |
COR_PRF_MONITOR_REMOTING |
COR_PRF_MONITOR_REMOTING_COOKIE |
COR_PRF_MONITOR_REMOTING_ASYNC |
COR_PRF_ENABLE_REJIT |
COR_PRF_ENABLE_INPROC_DEBUGGING |
COR_PRF_ENABLE_JIT_MAPS |
COR_PRF_DISABLE_OPTIMIZATIONS |
COR_PRF_DISABLE_INLINING |
COR_PRF_ENABLE_OBJECT_ALLOCATED |
COR_PRF_ENABLE_FUNCTION_ARGS |
COR_PRF_ENABLE_FUNCTION_RETVAL |
COR_PRF_ENABLE_FRAME_INFO |
COR_PRF_USE_PROFILE_IMAGES |
COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST |
COR_PRF_DISABLE_ALL_NGEN_IMAGES
} COR_PRF_MONITOR;
멤버
다음 섹션에는 범주별 COR_PRF_MONITOR
열거형 멤버가 나와 있습니다. 관련 범주는 다음과 같습니다.
플래그 설정 없음
멤버 | Description |
---|---|
COR_PRF_MONITOR_NONE |
플래그가 설정되지 않습니다. |
콜백 플래그
멤버 | Description |
---|---|
COR_PRF_MONITOR_ALL |
모든 콜백 이벤트를 사용하도록 설정합니다. |
COR_PRF_MONITOR_APPDOMAIN_LOADS |
ICorProfilerCallback 인터페이스에서 AppDomainCreation* 및 AppDomainShutdown* 콜백을 제어합니다. |
COR_PRF_MONITOR_ASSEMBLY_LOADS |
ICorProfilerCallback 인터페이스에서 AssemblyLoad* 및 AssemblyUnload* 콜백을 제어합니다. |
COR_PRF_MONITOR_CACHE_SEARCHES |
ICorProfilerCallback 인터페이스에서 JITCachedFunctionSearch* 콜백을 제어합니다.이 플래그의 동작은 .NET Framework 버전 2.0에서 변경되었습니다. |
COR_PRF_MONITOR_CCW |
ICorProfilerCallback 인터페이스에서 COMClassicVTable* 콜백을 제어합니다. |
COR_PRF_MONITOR_CLASS_LOADS |
ICorProfilerCallback 인터페이스에서 ClassLoad* 및 ClassUnload* 콜백을 제어합니다. |
COR_PRF_MONITOR_CLR_EXCEPTIONS |
ICorProfilerCallback 인터페이스에서 ExceptionCLRCatcher* 콜백을 제어합니다. |
COR_PRF_MONITOR_CODE_TRANSITIONS |
ICorProfilerCallback 인터페이스에서 UnmanagedToManagedTransition 및 ManagedToUnmanagedTransition 콜백을 제어합니다. |
COR_PRF_MONITOR_ENTERLEAVE |
FunctionEnter* , FunctionLeave* , 및 FunctionTailCall* 프로파일링 전역 정적 함수를 제어합니다. |
COR_PRF_MONITOR_EXCEPTIONS |
ICorProfilerCallback 인터페이스에서 ExceptionThrown 콜백과 ExceptionSearch* , ExceptionOSHandler* , ExceptionUnwind* 및 ExceptionCatcher* 콜백을 제어합니다. |
COR_PRF_MONITOR_FUNCTION_UNLOADS |
ICorProfilerCallback 인터페이스에서 FunctionUnloadStarted 콜백을 제어합니다. |
COR_PRF_MONITOR_GC |
ICorProfilerCallback* 인터페이스에서 GarbageCollectionStarted, GarbageCollectionFinished, MovedReferences, MovedReferences2, SurvivingReferences, SurvivingReferences2, ObjectReferences, ObjectsAllocatedByClass, RootReferences, RootReferences2, HandleCreated, HandleDestroyed 및 FinalizeableObjectQueued 콜백을 제어합니다. COR_PRF_MONITOR_GC 가 할당되면 동시 가비지 수집이 해제됩니다. |
COR_PRF_MONITOR_JIT_COMPILATION |
ICorProfilerCallback 인터페이스에서 JITCompilation* , JITFunctionPitched 및 JITInlining 콜백을 제어합니다. |
COR_PRF_MONITOR_MODULE_LOADS |
ICorProfilerCallback 인터페이스에서 ModuleLoad* , ModuleUnload* , 및 ModuleAttachedToAssembly 콜백을 제어합니다. |
COR_PRF_MONITOR_OBJECT_ALLOCATED |
ICorProfilerCallback 인터페이스에서 ObjectAllocated 콜백을 제어합니다. |
COR_PRF_MONITOR_REMOTING |
ICorProfilerCallback 인터페이스에서 Remoting* 콜백을 제어합니다. |
COR_PRF_MONITOR_REMOTING_ASYNC |
Remoting* 콜백이 비동기 이벤트를 모니터링하는지 여부를 제어합니다. |
COR_PRF_MONITOR_REMOTING_COOKIE |
Remoting* 콜백으로 쿠키가 전달되는지 여부를 제어합니다. |
COR_PRF_MONITOR_SUSPENDS |
ICorProfilerCallback 인터페이스에서 RuntimeSuspend* , RuntimeResume* , RuntimeThreadSuspended 및 RuntimeThreadResumed 콜백을 제어합니다. |
COR_PRF_MONITOR_THREADS |
ICorProfilerCallback 및 ICorProfilerCallback2 인터페이스에서 ThreadCreated, ThreadDestroyed, ThreadAssignedToOSThread 및 ThreadNameChanged 콜백을 제어합니다. |
기능 사용 플래그
멤버 | Description |
---|---|
COR_PRF_ENABLE_FRAME_INFO |
FunctionEnter2 콜백에 의해 반환되는 COR_PRF_FRAME_INFO 값을 포함해 GetFunctionInfo2 메서드를 호출하여 제네릭 함수의 정확한 ClassID 를 검색할 수 있도록 설정합니다. |
COR_PRF_ENABLE_FUNCTION_ARGS |
FunctionEnter2 콜백 또는 FunctionEnter3WithInfo 콜백 및 GetFunctionEnter3Info 메서드를 사용하여 인수 추적을 사용하도록 설정합니다. |
COR_PRF_ENABLE_FUNCTION_RETVAL |
FunctionLeave2 콜백 또는 FunctionLeave3WithInfo 콜백 및 GetFunctionLeave3Info 메서드를 사용하여 반환 값을 추적할 수 있습니다. |
COR_PRF_ENABLE_INPROC_DEBUGGING |
더 이상 사용되지 않습니다. 프로세스 내 디버깅은 지원되지 않습니다. 이 플래그는 아무런 영향을 주지 않습니다. |
COR_PRF_ENABLE_JIT_MAPS |
더 이상 사용되지 않습니다. 프로파일러가 GetILToNativeMapping을 사용하여 IL-네이티브 맵을 가져오도록 허용합니다. .NET Framework 2.0부터는 런타임이 항상 IL-네이티브 맵을 추적하므로 이 플래그는 항상 설정되어 있는 것으로 간주됩니다. |
COR_PRF_ENABLE_OBJECT_ALLOCATED |
프로파일러가 개체 할당 알림을 받고자 할 수 있음을 런타임에 알립니다. 이 플래그는 초기화 중에 설정해야 합니다. 그러면 프로파일러가 나중에 COR_PRF_MONITOR_OBJECT_ALLOCATED 플래그를 사용하여 ObjectAllocated 콜백을 받을 수 있습니다. |
COR_PRF_ENABLE_REJIT |
RequestReJIT 및 RequestRevert 메서드를 호출할 수 있도록 설정합니다. 프로파일러는 시작 시 이 플래그를 설정해야 합니다. 프로파일러가 이 플래그를 지정하는 경우에는 COR_PRF_DISABLE_ALL_NGEN_IMAGES 도 지정해야 합니다. |
COR_PRF_ENABLE_STACK_SNAPSHOT |
DoStackSnapshot 메서드를 호출할 수 있도록 설정합니다. |
구성 플래그
멤버 | Description |
---|---|
COR_PRF_DISABLE_ALL_NGEN_IMAGES |
프로파일러 향상 이미지를 비롯한 모든 네이티브 이미지의 로드를 차단합니다. 이 플래그와 COR_PRF_USE_PROFILE_IMAGES 플래그가 모두 지정되어 있으면 COR_PRF_DISABLE_ALL_NGEN_IMAGES 가 사용됩니다. |
COR_PRF_DISABLE_INLINING |
모든 인라인 처리를 사용하지 않습니다. |
COR_PRF_DISABLE_OPTIMIZATIONS |
모든 코드 최적화를 사용하지 않습니다. |
COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST |
일반적으로는 완전 신뢰 어셈블리에 대해 JIT(Just-In-Time) 컴파일 및 클래스 로드 중에 수행되는 보안 투명도 확인을 사용하지 않습니다. 이 경우 일부 계측을 보다 쉽게 수행할 수 있습니다. |
COR_PRF_USE_PROFILE_IMAGES |
네이티브 이미지 검색에서 프로파일러 향상 이미지를 찾도록 지정합니다. 지정한 어셈블리의 프로파일러 향상 이미지가 없으면 공용 언어 런타임이 해당 어셈블리에 대해 JIT로 대체됩니다. 이 플래그와 COR_PRF_DISABLE_ALL_NGEN_IMAGES 플래그가 모두 지정되어 있으면 COR_PRF_DISABLE_ALL_NGEN_IMAGES 가 사용됩니다. |
복합 플래그
멤버 | Description |
---|---|
COR_PRF_ALL |
모든 COR_PRF_MONITOR 플래그 값을 나타냅니다. |
COR_PRF_ALLOWABLE_AFTER_ATTACH |
실행 중인 앱에 프로파일러를 연결한 후에 설정할 수 있는 모든 COR_PRF_MONITOR 플래그를 나타냅니다. 구문 섹션에는 이 비트 마스크에 있는 개별 플래그가 표시됩니다. |
COR_PRF_MONITOR_ALL |
모든 콜백 이벤트를 사용하도록 설정합니다. |
COR_PRF_MONITOR_IMMUTABLE |
초기화 중에만 설정할 수 있는 모든 COR_PRF_MONITOR 플래그를 나타냅니다. 초기화 후에 이러한 플래그를 변경하려고 하면 오류를 나타내는 HRESULT 값이 반환됩니다. |
COR_PRF_REQUIRE_PROFILE_IMAGE |
프로필 향상 이미지가 필요한 모든 COR_PRF_MONITOR 플래그를 나타냅니다. |
설명
COR_PRF_MONITOR
값은 ICorProfilerInfo::GetEventMask 및 ICorProfilerInfo::SetEventMask 메서드와 함께 공용 언어 런타임이 프로파일러에 제공하는 이벤트 알림을 정의하는 데 사용됩니다.
요구 사항
플랫폼:시스템 요구 사항을 참조하세요.
헤더: CorProf.idl, CorProf.h
라이브러리: CorGuids.lib
.NET Framework 버전: 1.0부터 사용 가능
참고 항목
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET