COR_PRF_MONITOR-Enumeration

Enthält Werte, die zum Angeben von Verhalten, Funktionen oder Ereignissen verwendet werden, die der Profiler abonnieren muss.

Syntax

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;  

Member

In den folgenden Abschnitten werden die Member der COR_PRF_MONITOR-Enumeration nach Kategorie aufgelistet. Die Kategorien lauten wie folgt:

Keine Flags festgelegt

Member Beschreibung
COR_PRF_MONITOR_NONE Es sind keine Flags festgelegt.

Rückruf-Flags

Member Beschreibung
COR_PRF_MONITOR_ALL Aktiviert alle Rückrufereignisse.
COR_PRF_MONITOR_APPDOMAIN_LOADS Steuert den AppDomainCreation*-Rückruf und den AppDomainShutdown*-Rückruf in der ICorProfilerCallback-Schnittstelle.
COR_PRF_MONITOR_ASSEMBLY_LOADS Steuert den AssemblyLoad*-Rückruf und den AssemblyUnload*-Rückruf in der ICorProfilerCallback-Schnittstelle.
COR_PRF_MONITOR_CACHE_SEARCHES Steuert die JITCachedFunctionSearch*-Rückrufe in der ICorProfilerCallback-Schnittstelle.

Das Verhalten dieses Flags ändert sich in Version 2.0 von .NET Framework.
COR_PRF_MONITOR_CCW Steuert die COMClassicVTable*-Rückrufe in der ICorProfilerCallback-Schnittstelle.
COR_PRF_MONITOR_CLASS_LOADS Steuert den ClassLoad*-Rückruf und den ClassUnload*-Rückruf in der ICorProfilerCallback-Schnittstelle.
COR_PRF_MONITOR_CLR_EXCEPTIONS Steuert die ExceptionCLRCatcher*-Rückrufe in der ICorProfilerCallback-Schnittstelle.
COR_PRF_MONITOR_CODE_TRANSITIONS Steuert den UnmanagedToManagedTransition-Rückruf und den ManagedToUnmanagedTransition-Rückruf in der ICorProfilerCallback-Schnittstelle.
COR_PRF_MONITOR_ENTERLEAVE Steuert die globalen statischen Funktionen für die ProfilerstellungFunctionEnter*, FunctionLeave* und FunctionTailCall*.
COR_PRF_MONITOR_EXCEPTIONS Steuert den ExceptionThrown-Rückruf und die Rückrufe ExceptionSearch*, ExceptionOSHandler*, ExceptionUnwind* und ExceptionCatcher* in der ICorProfilerCallback-Schnittstelle.
COR_PRF_MONITOR_FUNCTION_UNLOADS Steuert den FunctionUnloadStarted-Rückruf in der ICorProfilerCallback-Schnittstelle.
COR_PRF_MONITOR_GC Steuert die Rückrufe GarbageCollectionStarted, GarbageCollectionFinished, MovedReferences, MovedReferences2, SurvivingReferences, SurvivingReferences2, ObjectReferences, ObjectsAllocatedByClass, RootReferences, RootReferences2, HandleCreated, HandleDestroyed und FinalizeableObjectQueued in den ICorProfilerCallback*-Schnittstellen. Wenn COR_PRF_MONITOR_GC zugeordnet ist, ist die gleichzeitige Garbage Collection deaktiviert.
COR_PRF_MONITOR_JIT_COMPILATION Steuert die Rückrufe JITCompilation*, JITFunctionPitched und JITInlining in der ICorProfilerCallback-Schnittstelle.
COR_PRF_MONITOR_MODULE_LOADS Steuert die Rückrufe ModuleLoad*, ModuleUnload* und ModuleAttachedToAssembly in der ICorProfilerCallback-Schnittstelle.
COR_PRF_MONITOR_OBJECT_ALLOCATED Steuert den ObjectAllocated-Rückruf in der ICorProfilerCallback-Schnittstelle.
COR_PRF_MONITOR_REMOTING Steuert die Remoting*-Rückrufe in der ICorProfilerCallback-Schnittstelle.
COR_PRF_MONITOR_REMOTING_ASYNC Steuert, ob die Remoting*-Rückrufe asynchrone Ereignisse überwachen.
COR_PRF_MONITOR_REMOTING_COOKIE Steuert, ob ein Cookie an Remoting*-Rückrufe übergeben wird.
COR_PRF_MONITOR_SUSPENDS Steuert die Rückrufe RuntimeSuspend*, RuntimeResume*, RuntimeThreadSuspended und RuntimeThreadResumed in der ICorProfilerCallback-Schnittstelle.
COR_PRF_MONITOR_THREADS Steuert die Rückrufe ThreadCreated, ThreadDestroyed, ThreadAssignedToOSThread und ThreadNameChanged in den Schnittstellen ICorProfilerCallback und ICorProfilerCallback2.

Flags zur Aktivierung von Funktionen

Member Beschreibung
COR_PRF_ENABLE_FRAME_INFO Aktiviert das Abrufen einer genauen ClassID für eine generische Funktion über einen Aufruf der GetFunctionInfo2-Methode mit einem COR_PRF_FRAME_INFO-Wert, der vom FunctionEnter2-Rückruf zurückgegeben wurde.
COR_PRF_ENABLE_FUNCTION_ARGS Aktiviert Nachverfolgung von Argumenten mit dem FunctionEnter2-Rückruf oder dem FunctionEnter3WithInfo-Rückruf und der GetFunctionEnter3Info-Methode.
COR_PRF_ENABLE_FUNCTION_RETVAL Aktiviert Nachverfolgung von Werten mit dem FunctionLeave2-Rückruf oder dem FunctionLeave3WithInfo-Rückruf und der GetFunctionLeave3Info-Methode.
COR_PRF_ENABLE_INPROC_DEBUGGING Veraltet.

Prozessinternes Debuggen wird nicht unterstützt. Dieses Flag hat keine Wirkung.
COR_PRF_ENABLE_JIT_MAPS Veraltet.

Ermöglicht dem Profiler, unter Verwendung von GetILToNativeMapping Zuordnungen zwischen IL-Code und nativem Code abzurufen. In .NET Framework 2.0 werden Zuordnungen zwischen IL-Code und nativem Code von der CLR immer nachverfolgt, daher gilt dieses Flag immer als festgelegt.
COR_PRF_ENABLE_OBJECT_ALLOCATED Teilt der CLR mit, dass der Profiler u. U. über Objektzuordnungen benachrichtigt werden soll. Dies muss während der Initialisierung festgelegt werden. So kann der Profiler anschließend das COR_PRF_MONITOR_OBJECT_ALLOCATED-Flag verwenden, um ObjectAllocated-Rückrufe zu empfangen.
COR_PRF_ENABLE_REJIT Aktiviert Aufrufe der Methoden RequestReJIT und RequestRevert. Der Profiler muss dieses Flag beim Start festlegen. Wenn der Profiler dieses Flag angibt, muss er auch COR_PRF_DISABLE_ALL_NGEN_IMAGES angeben.
COR_PRF_ENABLE_STACK_SNAPSHOT Aktiviert Aufrufe der DoStackSnapshot-Methode.

Konfigurationsflags

Member Beschreibung
COR_PRF_DISABLE_ALL_NGEN_IMAGES Bewirkt, dass die systemeigene Abbildsuche nach Abbildern (einschließlich durch Profiler verbesserte) sucht. Wenn dieses Flag und das COR_PRF_USE_PROFILE_IMAGES-Flag beide angegeben sind, wird COR_PRF_DISABLE_ALL_NGEN_IMAGES verwendet.
COR_PRF_DISABLE_INLINING Deaktiviert das gesamte Inlining.
COR_PRF_DISABLE_OPTIMIZATIONS Deaktiviert alle Codeoptimierungen.
COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST Deaktiviert Sicherheitstransparenzprüfungen, die normalerweise während Just-In-Time (JIT)-Kompilierungen und dem Laden von Klassen für vollständig vertrauenswürdige Assemblys durchgeführt werden. Dies kann die Ausführung einiger Instrumentierungsvorgänge erleichtern.
COR_PRF_USE_PROFILE_IMAGES Bewirkt, dass die systemeigene Abbildsuche nach durch Profiler verbesserten Abbildern sucht. Wenn für eine Assembly kein durch Profiler verbessertes Bild gefunden wird, greift die Common Language Runtime für die betreffende Assembly wieder auf JIT zurück. Wenn dieses Flag und das COR_PRF_DISABLE_ALL_NGEN_IMAGES-Flag beide angegeben sind, wird COR_PRF_DISABLE_ALL_NGEN_IMAGES verwendet.

Kombinierte Flags

Member BESCHREIBUNG
COR_PRF_ALL Stellt alle COR_PRF_MONITOR-Flagwerte dar.
COR_PRF_ALLOWABLE_AFTER_ATTACH Stellt alle COR_PRF_MONITOR-Flags dar, die festgelegt werden können, wenn der Profiler mit einer ausgeführten App verknüpft wurde. Der Syntaxabschnitt gibt die einzelnen Flags an, die in dieser Bitmask vorhanden sind.
COR_PRF_MONITOR_ALL Aktiviert alle Rückrufereignisse.
COR_PRF_MONITOR_IMMUTABLE Stellt alle COR_PRF_MONITOR-Flags dar, die nur während der Initialisierung festgelegt werden können. Wenn Sie versuchen, eines dieser Flags nach der Initialisierung zu ändern, führt dies zu einem HRESULT-Wert, der auf einen Fehler hinweist.
COR_PRF_REQUIRE_PROFILE_IMAGE Stellt alle COR_PRF_MONITOR-Flags dar, die durch Profiler verbesserte Bilder erfordern.

Bemerkungen

Ein COR_PRF_MONITOR-Wert wird mit den Methoden ICorProfilerInfo::GetEventMask und ICorProfilerInfo::SetEventMask verwendet, um die Ereignisbenachrichtigungen zu definieren, die die Common Language Runtime für den Profiler vornimmt.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: CorProf.idl, CorProf.h

Bibliothek: CorGuids.lib

.NET Framework-Versionen: Seit Version 1.0 verfügbar

Siehe auch