Compartir a través de


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

El método AddExtensionCommand agrega una nueva entrada fa a un objeto DebugFailureAnalysis y establece el bloque de datos de la entrada fa en un comando de depurador especificado.

Sintaxis

PFA_ENTRY AddExtensionCommand(
       FA_TAG Tag,
  [in] PCSTR  Extension
);

Parámetros

Tag

Valor de la enumeración FA_TAG . El tipo de datos asociado a esta etiqueta debe ser DEBUG_FA_ENTRY_EXTENSION_CMD o DEBUG_FA_ENTRY_ANSI_STRING.

[in] Extension

Puntero a una cadena ANSI terminada en null que es el comando del depurador. Un ejemplo del comando del depurador es "!analyze -v".

Valor devuelto

Si este método se ejecuta correctamente, devuelve un puntero a la nueva estructura de FA_ENTRY . Si se produce un error en este método, devuelve NULL.

Comentarios

Este método establece el miembro DataSize de la nueva estructura de FA_ENTRY en la longitud, en bytes, del comando de extensión, incluido el terminador NULL .

Cada etiqueta está asociada a uno de los tipos de datos de la enumeración FA_ENTRY_TYPE . Para determinar el tipo de datos asociado a una etiqueta, llame al método GetType de la interfaz IDebugFAEntryTags .

Para obtener un puntero a una interfaz IDebugFAEntryTags , llame al método GetDebugFATagControl de la interfaz IDebugFailureAnalysis2 .

[sperry] Nota en Self: si la etiqueta especificada aún no tiene su tipo de datos fijo, este método establece y corrige el tipo de datos de la etiqueta. Eso sería el caso si el objeto DebugFailureAnalysis aún no tiene una entrada FA con esta etiqueta. Pero si el objeto DebugFailureAnalysis ya tiene una entrada FA con esta etiqueta, se fija el tipo de datos de la etiqueta. Este método crea una nueva entrada fa con la misma etiqueta. Ahora, ¿qué ocurre si el tipo de datos que estamos intentando escribir en el nuevo búfer de datos no coincide con el tipo de datos que se ha corregido para esta etiqueta? A continuación, vemos si es correcto convertir desde el tipo de datos fijo al tipo que queremos escribir.

Está bien convertir entre ULONG64, POINTER y InstructionOffset. Está bien convertir entre String y ExtensionCommand. ULONG solo puede ser ULONG. Los STRING solo pueden ser STRING.

Pregunta: ¿Cuándo se corrige el tipo de datos de una etiqueta? ¿Es cuando se crea la primera entrada fa con esa etiqueta?

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 Value
Plataforma de destino Escritorio
Encabezado extsfns.h

Consulte también

IDebugFAEntryTags

IDebugFailureAnalysis2

SetExtensionCommand

Escribir un complemento de extensión de análisis para ampliar !analyze

_EFN_Analyze