Бөлісу құралы:


Интерфейс ICorProfilerCallback

Предоставляет методы, используемые средой CLR для уведомления профилировщика кода о возникновении событий, на которые подписан профилировщик.

Методы

Метод Описание
Метод AppDomainCreationFinished Уведомляет профилировщик о том, что домен приложения создан.
Метод AppDomainCreationStarted Уведомляет профилировщик о создании домена приложения.
Метод AppDomainShutdownFinished Уведомляет профилировщика о том, что домен приложения был выгружен из процесса.
Метод AppDomainShutdownStarted Уведомляет профилировщик о том, что домен приложения выгружается из процесса.
Метод AssemblyLoadFinished Уведомляет профилировщик о том, что загрузка сборки завершена.
Метод AssemblyLoadStarted Уведомляет профилировщик о загрузке сборки.
Метод AssemblyUnloadFinished Уведомляет профилировщика о том, что сборка была выгружена.
Метод AssemblyUnloadStarted Уведомляет профилировщика о том, что сборка выгружается.
Метод ClassLoadFinished Уведомляет профилировщик о том, что загрузка класса завершена.
Метод ClassLoadStarted Уведомляет профилировщик о загрузке класса.
Метод ClassUnloadFinished Уведомляет профилировщика о том, что выгрузка класса завершена.
Метод ClassUnloadStarted Уведомляет профилировщика о том, что класс выгружается.
Метод COMClassicVTableCreated Уведомляет профилировщик о создании вызываемой оболочки среды выполнения (RCW) для указанного IID и класса.
Метод COMClassicVTableDestroyed Уведомляет профилировщик о том, что rcw уничтожается.
Метод ExceptionCatcherEnter Уведомляет профилировщик о том, что элемент управления передается в соответствующий catch блок.
Метод ExceptionCatcherLeave Уведомляет профилировщика о том, что элемент управления передается из соответствующего catch блока.
Метод ExceptionCLRCatcherExecute Устарело в платформа .NET Framework версии 2.0.
Метод ExceptionCLRCatcherFound Устарело в платформа .NET Framework 2.0.
Метод ExceptionOSHandlerEnter Не реализован. Профилировщик, которому требуются неуправляемые сведения об исключении, должен получать эти сведения другими способами.
Метод ExceptionOSHandlerLeave Не реализован. Профилировщик, которому требуются неуправляемые сведения об исключении, должен получать эти сведения другими способами.
Метод ExceptionSearchCatcherFound Уведомляет профилировщика о том, что на этапе поиска обработки исключений был обнаружен обработчик для созданного исключения.
Метод ExceptionSearchFilterEnter Уведомляет профилировщика о том, что выполняется фильтр пользователя.
Метод ExceptionSearchFilterLeave Уведомляет профилировщик о том, что фильтр пользователя только что завершил выполнение.
Метод ExceptionSearchFunctionEnter Уведомляет профилировщика о том, что на этапе поиска обработки исключений поступила функция.
Метод ExceptionSearchFunctionLeave Уведомляет профилировщика о том, что поиск функции завершен на этапе обработки исключений.
Метод ExceptionThrown Уведомляет профилировщика о том, что возникло исключение.
Метод ExceptionUnwindFinallyEnter Уведомляет профилировщика о том, что на этапе очистки обработки исключений finally вводится предложение, содержащееся в указанной функции.
Метод ExceptionUnwindFinallyLeave Уведомляет профилировщика о том, что на этапе очистки обработки исключений finally осталось предложение .
Метод ExceptionUnwindFunctionEnter Уведомляет профилировщик о том, что этап очистки обработки исключений вошел в функцию.
Метод ExceptionUnwindFunctionLeave Уведомляет профилировщика о том, что очистка функции завершена на этапе очистки обработки исключений.
Метод FunctionUnloadStarted Уведомляет профилировщика о том, что среда выполнения начала выгрузить функцию.
Метод Initialize Вызывается для инициализации профилировщика при каждом запуске нового приложения CLR.
Метод JITCachedFunctionSearchFinished Уведомляет профилировщика о завершении поиска функции, скомпилированной ранее с помощью NGen.exe.
Метод JITCachedFunctionSearchStarted Уведомляет профилировщика о начале поиска функции, скомпилированной ранее с помощью NGen.exe.
Метод JITCompilationFinished Уведомляет профилировщика о том, что JIT-компилятор завершил компиляцию функции.
Метод JITCompilationStarted Уведомляет профилировщик о том, что JIT-компилятор начал компиляцию функции.
Метод JITFunctionPitched Уведомляет профилировщика о том, что функция, которая была скомпилирована JIT, удалена из памяти.
Метод JITInlining Уведомляет профилировщика о том, что JIT-компилятор вставляет функцию в соответствии с другой функцией.
Метод ManagedToUnmanagedTransition Уведомляет профилировщика о переходе с управляемого кода на неуправляемый код.
Метод ModuleAttachedToAssembly Уведомляет профилировщик о том, что модуль присоединяется к его родительской сборке.
Метод ModuleLoadFinished Уведомляет профилировщик о том, что загрузка модуля завершена.
Метод ModuleLoadStarted Уведомляет профилировщик о загрузке модуля.
Метод ModuleUnloadFinished Уведомляет профилировщика о том, что выгрузка модуля завершена.
Метод ModuleUnloadStarted Уведомляет профилировщик о том, что модуль выгружается.
Метод MovedReferences Уведомляет профилировщик о ссылках на объекты, которые были перемещены во время сборки мусора.
Метод ObjectAllocated Уведомляет профилировщика о том, что память в куче выделена для объекта .
Метод ObjectReferences Уведомляет профилировщик об объектах в памяти, на которые ссылается указанный объект.
Метод ObjectsAllocatedByClass Уведомляет профилировщик о количестве экземпляров каждого указанного класса, созданных с момента предыдущей сборки мусора.
Метод RemotingClientInvocationFinished Уведомляет профилировщика о том, что вызов удаленного взаимодействия выполнен до завершения на клиенте.
Метод RemotingClientInvocationStarted Уведомляет профилировщика о том, что запущен вызов удаленного взаимодействия.
Метод RemotingClientReceivingReply Уведомляет профилировщика о том, что серверная часть удаленного вызова завершена, и клиент теперь получает ответ и обработает ответ.
Метод RemotingClientSendingMessage Уведомляет профилировщика о том, что клиент отправляет запрос серверу.
Метод RemotingServerInvocationReturned Уведомляет профилировщика о том, что процесс завершил вызов метода в ответ на запрос вызова удаленного метода.
Метод RemotingServerInvocationStarted Уведомляет профилировщика о том, что процесс вызывает метод в ответ на запрос вызова удаленного метода.
Метод RemotingServerReceivingMessage Уведомляет профилировщика о том, что процесс получает вызов удаленного метода или запрос на активацию.
Метод RemotingServerSendingReply Уведомляет профилировщика о том, что процесс завершил обработку запроса на вызов удаленного метода и что он должен передать ответ через канал.
Метод RootReferences Уведомляет профилировщик сведениями о корневых ссылках после сборки мусора.
Метод RuntimeResumeFinished Уведомляет профилировщик о том, что среда выполнения возобновила все потоки среды выполнения и вернулась к нормальной работе.
Метод RuntimeResumeStarted Уведомляет профилировщик о том, что среда выполнения возобновляет все потоки времени выполнения.
Метод RuntimeSuspendAborted Уведомляет профилировщика о том, что среда выполнения прервала приостановку выполнения.
Метод RuntimeSuspendFinished Уведомляет профилировщик о том, что среда выполнения завершила приостановку всех потоков среды выполнения.
Метод RuntimeSuspendStarted Уведомляет профилировщик о том, что среда выполнения приостанавливает все потоки времени выполнения.
Метод RuntimeThreadResumed Уведомляет профилировщика о том, что указанный поток возобновился после приостановки.
Метод RuntimeThreadSuspended Уведомляет профилировщика о том, что указанный поток приостановлен или будет приостановлен.
Метод Shutdown Уведомляет профилировщик о завершении работы приложения.
Метод ThreadAssignedToOSThread Уведомляет профилировщик о том, что управляемый поток реализуется с помощью определенного потока операционной системы (ОС).
Метод ThreadCreated Уведомляет профилировщик о том, что поток создан.
Метод ThreadDestroyed Уведомляет профилировщика о том, что поток был уничтожен.
Метод UnmanagedToManagedTransition Уведомляет профилировщика о том, что произошел переход от неуправляемого кода к управляемому.

Комментарии

Среда CLR вызывает метод в интерфейсе ICorProfilerCallback (или ICorProfilerCallback2) для уведомления профилировщика о возникновении события, на которое подписан профилировщик. Это основной интерфейс обратного вызова, через который среда CLR взаимодействует с профилировщиком кода.

Профилировщик кода должен реализовывать методы ICorProfilerCallback интерфейса . Для платформа .NET Framework версии 2.0 или более поздней профилировщик также должен реализовать методы ICorProfilerCallback2 . Каждая реализация метода должна возвращать HRESULT со значением S_OK при успешном выполнении или E_FAIL при сбое. В настоящее время среда CLR игнорирует HRESULT, возвращаемое каждым обратным вызовом, за исключением ICorProfilerCallback::ObjectReferences.

В реестре Microsoft Windows профилировщик кода должен зарегистрировать объект COM, реализующий ICorProfilerCallback интерфейсы и ICorProfilerCallback2 . Профилировщик кода подписывается на события, для которых он хочет получать уведомления, вызывая метод ICorProfilerInfo::SetEventMask. Обычно это делается в реализации профилировщика ICorProfilerCallback::Initialize. Затем профилировщик может получать уведомление от среды выполнения, когда событие вот-вот произойдет или только что произошло в процессе выполнения среды выполнения.

Примечание

Профилировщик регистрирует один COM-объект. Если профилировщик предназначен для платформа .NET Framework версии 1.0 или 1.1, этот COM-объект должен реализовывать только методы ICorProfilerCallback. Если он предназначен для платформа .NET Framework версии 2.0 или более поздней, COM-объект также должен реализовывать методы ICorProfilerCallback2.

Требования

Платформы: см. раздел Требования к системе.

Заголовок: CorProf.idl, CorProf.h

Библиотека: CorGuids.lib

версии платформа .NET Framework: доступно с версии 1.0.

См. также раздел