다음을 통해 공유


IDebugFailureAnalysis2::AddExtensionCommand 메서드(extsfns.h)

AddExtensionCommand 메서드는 DebugFailureAnalysis 개체에 새 FA 항목을 추가하고 FA 항목의 데이터 블록을 지정된 디버거 명령으로 설정합니다.

구문

PFA_ENTRY AddExtensionCommand(
       FA_TAG Tag,
  [in] PCSTR  Extension
);

매개 변수

Tag

FA_TAG 열거형의 값입니다. 이 태그와 연결된 데이터 형식은 DEBUG_FA_ENTRY_EXTENSION_CMD 또는 DEBUG_FA_ENTRY_ANSI_STRING 합니다.

[in] Extension

디버거 명령인 null로 끝나는 ANSI 문자열에 대한 포인터입니다. 디버거 명령의 예는 "!analyze -v"입니다.

반환 값

이 메서드가 성공하면 새 FA_ENTRY 구조체에 대한 포인터를 반환합니다. 이 메서드가 실패하면 NULL을 반환합니다.

설명

이 메서드는 새 FA_ENTRY 구조체의 DataSize 멤버를 NULL 종결자를 포함한 확장 명령의 길이(바이트)로 설정합니다.

각 태그는 FA_ENTRY_TYPE 열거형의 데이터 형식 중 하나와 연결됩니다. 태그와 연결된 데이터 형식을 확인하려면 IDebugFAEntryTags 인터페이스의 GetType 메서드를 호출합니다.

IDebugFAEntryTags 인터페이스에 대한 포인터를 얻으려면 IDebugFailureAnalysis2 인터페이스의 GetDebugFATagControl 메서드를 호출합니다.

[sperry] Self에 대한 참고 사항: 지정된 태그에 데이터 형식이 아직 고정되지 않은 경우 이 메서드는 태그의 데이터 형식을 설정하고 수정합니다. DebugFailureAnalysis 개체에 아직 이 태그가 있는 FA 항목이 없는 경우입니다. 그러나 DebugFailureAnalysis 개체에 이미 이 태그가 있는 FA 항목이 있는 경우 태그의 데이터 형식이 수정됩니다. 이 메서드는 동일한 태그를 사용하여 새 FA 항목을 만듭니다. 이제 새 데이터 버퍼에 쓰려는 데이터 형식이 이 태그에 대해 수정된 데이터 형식과 일치하지 않으면 어떻게 되나요? 그런 다음 고정 데이터 형식에서 작성하려는 형식으로 캐스팅해도 괜찮은지 확인합니다.

ULONG64, POINTER 및 InstructionOffset 간에 캐스팅해도 괜찮습니다. String 및 ExtensionCommand 간에 캐스팅해도 괜찮습니다. ULONG은 ULONG일 수 있습니다. STRING는 STRING일 수 있습니다.

질문: 태그의 데이터 형식은 언제 수정되나요? 해당 태그가 있는 첫 번째 FA 항목이 만들어지는 경우인가요?

typedef struct _FA_TAG_PROPS
{
    FA_TAG Tag;
    FA_ENTRY_TYPE Type;
    ULONG Fixed:1;
    ULONG NameAllocated:1;
    ULONG DescriptionAllocated:1;
    PCSTR Name;
    PCSTR Description;
    AnalysisPlugIn *Plugin;
} FA_TAG_PROPS, *PFA_TAG_PROPS;

요구 사항

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

추가 정보

IDebugFAEntryTags

IDebugFailureAnalysis2

SetExtensionCommand

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

_EFN_Analyze