Метод 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] Примечание к самообслуживанию. Если указанный тег еще не имеет его типа данных, этот метод задает и исправляет тип данных для тега. Это будет так, если объект 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

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

_EFN_Analyze