Метод IDebugFailureAnalysis2::AddExtensionCommand (extsfns.h)

Метод AddExtensionCommand добавляет новую запись FA в объект DebugFailureAnalysis и задает для блока данных записи 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

Указатель на строку ANSI, завершающуюся null, которая является командой отладчика. Примером команды отладчика является "!analyze -v".

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

Если этот метод завершается успешно, он возвращает указатель на новую структуру FA_ENTRY . Если этот метод завершается ошибкой, возвращается значение NULL.

Комментарии

Этот метод задает для элемента DataSize новой структуры FA_ENTRY длину (в байтах) команды расширения, включая признак конца NULL .

Каждый тег связан с одним из типов данных в перечислении FA_ENTRY_TYPE . Чтобы определить тип данных, связанный с тегом, вызовите метод GetType интерфейса IDebugFAEntryTags .

Чтобы получить указатель на интерфейс IDebugFAEntryTags , вызовите метод GetDebugFATagControl интерфейса IDebugFailureAnalysis2 .

[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