Compartilhar via


Método IDebugFailureAnalysis2::AddExtensionCommand (extsfns.h)

O método AddExtensionCommand adiciona uma nova entrada FA a um objeto DebugFailureAnalysis e define o bloco de dados da entrada FA para 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 do depurador. Um exemplo de comando do depurador é "!analyze -v".

Retornar valor

Se esse método for bem-sucedido, ele retornará um ponteiro para a nova estrutura FA_ENTRY . Se esse método falhar, ele retornará NULL.

Comentários

Esse método define o membro DataSize da nova estrutura FA_ENTRY para o comprimento, em bytes, do comando de extensão, incluindo o terminador 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 IDebugFAEntryTags , chame o método GetDebugFATagControl da interface IDebugFailureAnalysis2 .

[sperry] Observação para Self: 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 seria o caso se o objeto DebugFailureAnalysis ainda não tivesse 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. 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
Plataforma de Destino Área de Trabalho
Cabeçalho extsfns.h

Confira também

IDebugFAEntryTags

IDebugFailureAnalysis2

SetExtensionCommand

Gravando um plug-in de extensão de análise para estender !analisar

_EFN_Analyze