Método IDebugFailureAnalysis2::AddExtensionCommand (extsfns.h)
O método AddExtensionCommand adiciona um novo de entrada fa a um objeto DebugFailureAnalysis e define o bloco de dados da entrada FA como um comando de depurador especificado.
Sintaxe
PFA_ENTRY AddExtensionCommand(
FA_TAG Tag,
[in] PCSTR Extension
);
Parâmetros
Tag
Um valor na enumeração FA_TAG. O tipo de dados associado a essa marca deve ser DEBUG_FA_ENTRY_EXTENSION_CMD ou DEBUG_FA_ENTRY_ANSI_STRING.
[in] Extension
Um ponteiro para uma cadeia de caracteres ANSI terminada em nulo que é o comando de depurador. Um exemplo de comando de depurador é "!analyze -v".
Valor de retorno
Se esse método for bem-sucedido, ele retornará um ponteiro para a nova estrutura de FA_ENTRY. Se esse método falhar, ele retornará NULL.
Observações
Esse método define o DataSize membro da nova estrutura FA_ENTRY para o comprimento, em bytes, do comando de extensão, incluindo o terminador de NULL.
Cada marca é associada a um dos tipos de dados na enumeração FA_ENTRY_TYPE. Para determinar o tipo de dados associado a uma marca, chame o método GetType da interface IDebugFAEntryTags.
Para obter um ponteiro para uma interface de IDebugFAEntryTags, chame o método GetDebugFATagControl da interface IDebugFailureAnalysis2.
[sperry] Observação a si mesmo: se a marca fornecida ainda não tiver seu tipo de dados corrigido, esse método definirá e corrigirá o tipo de dados da marca. Esse será o caso se o objeto DebugFailureAnalysis ainda não tiver uma entrada FA com essa marca. Mas se o objeto DebugFailureAnalysis já tiver uma entrada FA com essa marca, o tipo de dados da marca será corrigido. Esse método cria uma nova entrada FA com a mesma marca. Agora, e se o tipo de dados que estamos tentando gravar no novo buffer de dados não corresponder ao tipo de dados que foi corrigido para essa marca. Em seguida, vemos se não há problema em converter do tipo de dados fixo para o tipo que desejamos gravar.
Não há problema em converter entre ULONG64, POINTER e InstructionOffset. Não há problema em converter entre String e ExtensionCommand. O ULONG só pode ser ULONG. STRINGs só podem ser STRINGs.
Pergunta: quando o tipo de dados de uma marca é corrigido? É quando a primeira entrada fa com essa marca é criada?
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;
Requisitos
Requisito | Valor |
---|---|
da Plataforma de Destino | Área de trabalho |
cabeçalho | extsfns.h |
Consulte também
escrever um plug-in de extensão de análise para estender !analisar