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_IMAGESwartość .
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

Zobacz też