Поделиться через


функция обратного вызова EXT_ANALYSIS_PLUGIN (extsfns.h)

При написании расширения анализанеобходимо реализовать экспорт EXT_ANALYSIS_PLUGIN как (_EFN_Analyze). Когда выполняется команда отладчика !analysis, она вызывает _EFN_Analyze на каждом этапе, чтобы вы могли участвовать в анализе.

Требуется соглашение о вызовах WINAPI (__stdcall). Исключение (noexcept) не должно оставить функцию.

Синтаксис

EXT_ANALYSIS_PLUGIN ExtAnalysisPlugin;

HRESULT ExtAnalysisPlugin(
  [in] PDEBUG_CLIENT4 Client,
  [in] FA_EXTENSION_PLUGIN_PHASE CallPhase,
  [in] PDEBUG_FAILURE_ANALYSIS2 pAnalysis
)
{...}

Параметры

[in] Client

Указатель на интерфейс IDebugClient4. Используйте этот интерфейс для доступа к отладчику. Используйте QueryInterface для доступа к другим интерфейсам отладчика, таким как устаревшая версия (IDebug*), узел отладки (IDebugHost*), модель данных (IDataModel*) и т. д., интерфейсы.

[in] CallPhase

Значение в перечислении FA_EXTENSION_PLUGIN_PHASE, указывающее, какой этап анализа в настоящее время выполняется. Этапы анализа включают инициализацию, анализ стека, предварительное сегментирование и пост-сегментирование.

[in] pAnalysis

Указатель на интерфейс IDebugFailureAnalysis2. Используйте этот интерфейс для получения и задания свойств анализа. Используйте QueryInterface для доступа к другим интерфейсам !analyze.

Возвращаемое значение

S_OK — было сделано изменение.

S_FALSE — изменения не были внесены.

E_* — произошла ошибка. !analyze сообщит об ошибке с помощью ключа или значения с помощью строки ключа Plugin.Exception."Phase"."DLL" и строки значения HRESULT в формате 0x%08x.

Требования

Требование Ценность
целевая платформа Настольный
заголовка extsfns.h

См. также

написание расширения пользовательского отладчика анализа

написание подключаемого модуля расширения анализа для расширения !analysis