다음을 통해 공유


EXT_ANALYSIS_PLUGIN 콜백 함수(extsfns.h)

분석 확장을 작성할 때 (_EFN_Analyze)로 내보낸 EXT_ANALYSIS_PLUGIN 구현해야 합니다. !analyze 디버거 명령이 실행되면 분석에 참여할 수 있도록 각 단계에서 _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는 "0x%08x" 형식으로 HRESULT의 Plugin.Exception."Phase"."DLL" 키 문자열 및 값 문자열을 사용하여 키/값을 통해 오류를 보고합니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 extsfns.h

추가 정보

사용자 지정 분석 디버거 확장 작성

확장 !analyze에 대한 분석 확장 플러그 인 작성