COR_PRF_MONITOR — Wyliczenie
Zawiera wartości używane do określania zachowania, możliwości lub zdarzeń, do których profiler chce subskrybować.
Składnia
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;
Elementy członkowskie
W poniższych sekcjach wymieniono COR_PRF_MONITOR
elementy członkowskie wyliczenia według kategorii. Kategorie to:
Brak ustawionych flag
Członek | Opis |
---|---|
COR_PRF_MONITOR_NONE |
Nie ustawiono żadnych flag. |
Flagi wywołania zwrotnego
Członek | Opis |
---|---|
COR_PRF_MONITOR_ALL |
Włącza wszystkie zdarzenia wywołania zwrotnego. |
COR_PRF_MONITOR_APPDOMAIN_LOADS |
AppDomainCreation* Steruje wywołaniami zwrotnymi i AppDomainShutdown* w interfejsie ICorProfilerCallback. |
COR_PRF_MONITOR_ASSEMBLY_LOADS |
AssemblyLoad* Steruje wywołaniami zwrotnymi i AssemblyUnload* w interfejsie ICorProfilerCallback. |
COR_PRF_MONITOR_CACHE_SEARCHES |
JITCachedFunctionSearch* Steruje wywołaniami zwrotnymi w interfejsie ICorProfilerCallback.Zachowanie tej flagi zostało zmienione w .NET Framework wersji 2.0. |
COR_PRF_MONITOR_CCW |
COMClassicVTable* Steruje wywołaniami zwrotnymi w interfejsie ICorProfilerCallback. |
COR_PRF_MONITOR_CLASS_LOADS |
ClassLoad* Steruje wywołaniami zwrotnymi i ClassUnload* w interfejsie ICorProfilerCallback. |
COR_PRF_MONITOR_CLR_EXCEPTIONS |
ExceptionCLRCatcher* Steruje wywołaniami zwrotnymi w interfejsie ICorProfilerCallback. |
COR_PRF_MONITOR_CODE_TRANSITIONS |
Steruje wywołaniami zwrotnymi UnmanagedToManagedTransition i ManagedToUnmanagedTransition w interfejsie ICorProfilerCallback |
COR_PRF_MONITOR_ENTERLEAVE |
FunctionEnter* Steruje funkcjami , FunctionLeave* i FunctionTailCall* profilowaniem globalnych funkcji statycznych. |
COR_PRF_MONITOR_EXCEPTIONS |
Steruje wywołaniem zwrotnym ExceptionThrown i ExceptionSearch* wywołaniami zwrotnymi , ExceptionOSHandler* ExceptionUnwind* , i ExceptionCatcher* w interfejsie ICorProfilerCallback. |
COR_PRF_MONITOR_FUNCTION_UNLOADS |
Steruje wywołaniem zwrotnym FunctionUnloadStarted w interfejsie ICorProfilerCallback . |
COR_PRF_MONITOR_GC |
Kontroluje element GarbageCollectionStarted, GarbageCollectionFinished, MovedReferences, MovedReferences2, SurvivingReferences, SurvivingReferences2, ObjectReferences, ObjectsAllocatedByClass, RootReferences, RootReferences2, HandleCreated, HandleDestroyed i FinalizeableObjectQueued wywołań zwrotnych w ICorProfilerCallback* interfejsach. Po COR_PRF_MONITOR_GC przydzieleniu współbieżne odzyskiwanie pamięci jest wyłączone. |
COR_PRF_MONITOR_JIT_COMPILATION |
JITCompilation* Steruje wywołaniami zwrotnymi , JITFunctionPitched i JITInlining w interfejsie ICorProfilerCallback. |
COR_PRF_MONITOR_MODULE_LOADS |
ModuleLoad* Steruje wywołaniami zwrotnymi , ModuleUnload* i ModuleAttachedToAssembly w interfejsie ICorProfilerCallback. |
COR_PRF_MONITOR_OBJECT_ALLOCATED |
Steruje wywołaniem zwrotnym ObjectAllocated w interfejsie ICorProfilerCallback . |
COR_PRF_MONITOR_REMOTING |
Remoting* Steruje wywołaniami zwrotnymi w interfejsie ICorProfilerCallback. |
COR_PRF_MONITOR_REMOTING_ASYNC |
Określa, Remoting* czy wywołania zwrotne będą monitorować zdarzenia asynchroniczne. |
COR_PRF_MONITOR_REMOTING_COOKIE |
Określa, czy plik cookie jest przekazywany do Remoting* wywołań zwrotnych. |
COR_PRF_MONITOR_SUSPENDS |
Steruje wywołaniami RuntimeSuspend* zwrotnymi , RuntimeResume* RuntimeThreadSuspended i RuntimeThreadResumed w interfejsie ICorProfilerCallback. |
COR_PRF_MONITOR_THREADS |
Kontroluje wywołania zwrotne ThreadCreated, ThreadDestroyed, ThreadAssignedToOSThread i ThreadNameChanged w interfejsach ICorProfilerCallback i ICorProfilerCallback2. |
Flagi włączania funkcji
Członek | Opis |
---|---|
COR_PRF_ENABLE_FRAME_INFO |
Włącza pobieranie dokładnej ClassID funkcji ogólnej przez wywołanie metody GetFunctionInfo2 z wartością zwróconą COR_PRF_FRAME_INFO przez wywołanie zwrotne FunkcjiEnter2 . |
COR_PRF_ENABLE_FUNCTION_ARGS |
Włącza śledzenie argumentów przy użyciu wywołania zwrotnego FunctionEnter2 lub funkcjiEnter3WithInfo wywołania zwrotnego i metody GetFunctionEnter3Info . |
COR_PRF_ENABLE_FUNCTION_RETVAL |
Umożliwia śledzenie wartości zwracanych przy użyciu wywołania zwrotnego FunctionLeave2 lub wywołania zwrotnego FunctionLeave3WithInfo i metody GetFunctionLeave3Info . |
COR_PRF_ENABLE_INPROC_DEBUGGING |
Przestarzałe. Debugowanie procesów nie jest obsługiwane. Ta flaga nie ma wpływu. |
COR_PRF_ENABLE_JIT_MAPS |
Przestarzałe. Umożliwia profilerowi uzyskiwanie map natywnych IL za pomocą polecenia GetILToNativeMapping. Począwszy od .NET Framework 2.0, środowisko uruchomieniowe zawsze śledzi mapy natywne IL, dlatego ta flaga jest zawsze uważana za ustawioną. |
COR_PRF_ENABLE_OBJECT_ALLOCATED |
Informuje środowisko uruchomieniowe, że profiler może potrzebować powiadomień o alokacji obiektów. Tę flagę należy ustawić podczas inicjowania. Umożliwia profilerowi późniejsze użycie flagi COR_PRF_MONITOR_OBJECT_ALLOCATED do odbierania wywołań zwrotnych ObjectAllocated . |
COR_PRF_ENABLE_REJIT |
Włącza wywołania metod RequestReJIT i RequestRevert . Profiler musi ustawić tę flagę podczas uruchamiania. Jeśli profiler określa tę flagę, musi również określić COR_PRF_DISABLE_ALL_NGEN_IMAGES wartość . |
COR_PRF_ENABLE_STACK_SNAPSHOT |
Włącza wywołania metody DoStackSnapshot . |
Flagi konfiguracji
Członek | Opis |
---|---|
COR_PRF_DISABLE_ALL_NGEN_IMAGES |
Uniemożliwia ładowanie wszystkich obrazów natywnych (w tym obrazów rozszerzonych przez profilera). Jeśli ta flaga i flaga COR_PRF_USE_PROFILE_IMAGES zostaną określone, COR_PRF_DISABLE_ALL_NGEN_IMAGES zostanie użyta. |
COR_PRF_DISABLE_INLINING |
Wyłącza wszystkie podkreślenia. |
COR_PRF_DISABLE_OPTIMIZATIONS |
Wyłącza wszystkie optymalizacje kodu. |
COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST |
Wyłącza kontrole przezroczystości zabezpieczeń, które są zwykle wykonywane podczas kompilacji just in time (JIT) i ładowania klas dla zestawów pełnego zaufania. Może to ułatwić instrumentację. |
COR_PRF_USE_PROFILE_IMAGES |
Powoduje wyszukiwanie obrazów natywnych w poszukiwaniu obrazów rozszerzonych przez profilera. Jeśli nie znaleziono obrazu rozszerzonego profilera dla danego zestawu, środowisko uruchomieniowe języka wspólnego wraca do trybu JIT dla tego zestawu. Jeśli ta flaga i flaga COR_PRF_DISABLE_ALL_NGEN_IMAGES zostaną określone, COR_PRF_DISABLE_ALL_NGEN_IMAGES zostanie użyta. |
Flagi złożone
Członek | Opis |
---|---|
COR_PRF_ALL |
Reprezentuje wszystkie COR_PRF_MONITOR wartości flagi. |
COR_PRF_ALLOWABLE_AFTER_ATTACH |
Reprezentuje wszystkie COR_PRF_MONITOR flagi, które można ustawić po dołączeniu profilera do uruchomionej aplikacji. Sekcja składni wskazuje poszczególne flagi, które znajdują się w tej maski bitów. |
COR_PRF_MONITOR_ALL |
Włącza wszystkie zdarzenia wywołania zwrotnego. |
COR_PRF_MONITOR_IMMUTABLE |
Reprezentuje wszystkie COR_PRF_MONITOR flagi, które można ustawić tylko podczas inicjowania. Próba zmiany dowolnej z tych flag po zainicjowaniu zwraca wartość wskazującą HRESULT niepowodzenie. |
COR_PRF_REQUIRE_PROFILE_IMAGE |
Reprezentuje wszystkie COR_PRF_MONITOR flagi, które wymagają obrazów rozszerzonych profilami. |
Uwagi
Wartość COR_PRF_MONITOR
jest używana z metodami ICorProfilerInfo::GetEventMask i ICorProfilerInfo::SetEventMask w celu zdefiniowania powiadomień o zdarzeniach, które środowisko uruchomieniowe języka wspólnego wysyła do profilera.
Wymagania
Platformy: Zobacz Wymagania systemowe.
Nagłówka: CorProf.idl, CorProf.h
Biblioteki: CorGuids.lib
wersje .NET Framework: dostępne od wersji 1.0