Метод 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 |
См. также раздел
Написание подключаемого модуля расширения анализа для расширения !analyze