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_MONITOR_CLR_EXCEPTIONS = 0x01000000,
COR_PRF_MONITOR_ALL = 0x0107FFFF,
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_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_ALL = 0x3FFFFFFF,
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_MONITOR_GC |
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_ENABLE_STACK_SNAPSHOT |
COR_PRF_USE_PROFILE_IMAGES
} COR_PRF_MONITOR;
멤버
멤버 |
설명 |
---|---|
COR_PRF_MONITOR_NONE |
플래그가 설정되지 않습니다. |
COR_PRF_MONITOR_FUNCTION_UNLOADS |
FunctionUnloadStarted 콜백을 제어합니다. |
COR_PRF_MONITOR_CLASS_LOADS |
ClassLoad 및 ClassUnload 콜백을 제어합니다.
참고
.NET Framework 버전 2.0에서는 이 플래그의 동작이 변경되었습니다.
|
COR_PRF_MONITOR_MODULE_LOADS |
ModuleLoad, ModuleUnload 및 ModuleAttachedToAssembly 콜백을 제어합니다. |
COR_PRF_MONITOR_ASSEMBLY_LOADS |
AssemblyLoad 및 AssemblyUnload 콜백을 제어합니다. |
COR_PRF_MONITOR_APPDOMAIN_LOADS |
AppDomainCreation 및 AppDomainShutdown 콜백을 제어합니다. |
COR_PRF_MONITOR_JIT_COMPILATION |
JITCompilation, JITFunctionPitched 및 JITInlining 콜백을 제어합니다. |
COR_PRF_MONITOR_EXCEPTIONS |
ExceptionThrown, ExceptionSearch, ExceptionOSHandler, ExceptionUnwind 및 ExceptionCatcher 콜백을 제어합니다. |
COR_PRF_MONITOR_GC |
GarbageCollectionStarted, GarbageCollectionFinished, MovedReferences, SurvivingReferences, ObjectReferences, ObjectsAllocatedByClass, RootReferences, HandleCreated, HandleDestroyed 및 FinalizeableObjectQueued 콜백을 제어합니다. |
COR_PRF_MONITOR_OBJECT_ALLOCATED |
ObjectAllocated 콜백을 제어합니다. |
COR_PRF_MONITOR_THREADS |
ThreadCreated, ThreadDestroyed, ThreadAssignedToOSThread 및 ThreadNameChanged 콜백을 제어합니다. |
COR_PRF_MONITOR_REMOTING |
Remoting 콜백을 제어합니다. |
COR_PRF_MONITOR_CODE_TRANSITIONS |
UnmanagedToManagedTransition 및 ManagedToUnmanagedTransition 콜백을 제어합니다. |
COR_PRF_MONITOR_ENTERLEAVE |
FunctionEnter, FunctionLeave 및 FunctionTailcall 콜백을 제어합니다. |
COR_PRF_MONITOR_CCW |
COMClassicVTable 콜백을 제어합니다. |
COR_PRF_MONITOR_REMOTING_COOKIE |
쿠키가 Remoting 콜백으로 전달되는지 여부를 제어합니다. |
COR_PRF_MONITOR_REMOTING_ASYNC |
Remoting 콜백에서 비동기 이벤트를 모니터링할지 여부를 제어합니다. |
COR_PRF_MONITOR_SUSPENDS |
RuntimeSuspend, RuntimeResume, RuntimeThreadSuspended 및 RuntimeThreadResumed 콜백을 제어합니다. |
COR_PRF_MONITOR_CACHE_SEARCHES |
JITCachedFunctionSearch 콜백을 제어합니다.
참고
.NET Framework 버전 2.0에서는 이 플래그의 동작이 변경되었습니다.
|
COR_PRF_MONITOR_CLR_EXCEPTIONS |
ExceptionCLRCatcher 콜백을 제어합니다. |
COR_PRF_MONITOR_ALL |
모든 콜백 이벤트를 사용합니다. |
COR_PRF_ENABLE_REJIT |
이제는 사용되지 않습니다. ReJIT는 지원되지 않습니다. 이 플래그는 아무런 효과가 없습니다. |
COR_PRF_ENABLE_INPROC_DEBUGGING |
이제는 사용되지 않습니다. In process 디버깅은 지원되지 않습니다. 이 플래그는 아무런 효과가 없습니다. |
COR_PRF_ENABLE_JIT_MAPS |
이제는 사용되지 않습니다. 프로파일러에서 ICorProfilerInfo::GetILToNativeMapping을 사용하여 MSIL과 네이티브 간 맵을 가져올 수 있습니다. .NET Framework 버전 2.0의 경우 런타임에서 MSIL과 네이티브 간 맵을 항상 추적하므로 이 플래그는 항상 설정되는 것으로 간주됩니다. |
COR_PRF_DISABLE_INLINING |
모든 인라인을 사용하지 않습니다. |
COR_PRF_DISABLE_OPTIMIZATIONS |
모든 코드 최적화를 사용하지 않습니다. |
COR_PRF_ENABLE_OBJECT_ALLOCATED |
프로파일러에 개체 할당 알림이 필요함을 런타임에 알립니다. 프로파일러에서 COR_PRF_MONITOR_OBJECT_ALLOCATED를 통한 알림이 필요하면 초기화하는 동안 이 값을 설정해야 합니다. |
COR_PRF_ENABLE_FUNCTION_ARGS |
FunctionEnter2를 통한 인수 추적을 사용할 수 있도록 설정합니다. |
COR_PRF_ENABLE_FUNCTION_RETVAL |
FunctionLeave2를 통한 반환 값 추적을 사용할 수 있도록 설정합니다. |
COR_PRF_ENABLE_FRAME_INFO |
FunctionEnter2, FunctionLeave2 또는 FunctionTailcall2를 호출하여 반환된 COR_PRF_FRAME_INFO 구조체를 사용하여 GetFunctionInfo2를 호출함으로써 제네릭 함수의 정확한 ClassID를 검색할 수 있도록 합니다. |
COR_PRF_ENABLE_STACK_SNAPSHOT |
DoStackSnapshot 호출을 사용할 수 있도록 설정합니다. |
COR_PRF_USE_PROFILE_IMAGES |
네이티브 이미지 검색에서 프로파일러 확장 이미지를 찾도록 합니다. 지정된 어셈블리에 대한 프로파일러 확장 이미지를 찾지 못하면 공용 언어 런타임이 해당 어셈블리의 JIT로 대체됩니다. |
COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUSt |
JIT(Just-In-Time) 컴파일 및 완전 신뢰 어셈블리를 위해 로드하는 클래스 동안 일반적으로 수행되는 보안 투명 검사를 사용하지 않습니다. 일부 계측을 쉽게 수행할 수 있게 해줍니다. |
COR_PRF_ALL |
올바른 플래그 값에 대한 마스크입니다. |
COR_PRF_MONITOR_IMMUTABLE |
초기화하는 동안에만 설정할 수 있는 모든 플래그를 나타냅니다. 초기화 후 이 플래그를 변경하려고 하면 오류를 나타내는 HRESULT 값이 반환됩니다. |
요구 사항
플랫폼: .NET Framework 시스템 요구 사항 참조
헤더: CorProf.idl, CorProf.h
라이브러리: CorGuids.lib
.NET Framework 버전: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0