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 |