Интерфейс 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.