Condividi tramite


Metodo IDebugFailureAnalysis2::AddExtensionCommand (extsfns.h)

Il metodo AddExtensionCommand aggiunge una nuova voce FA a un oggetto DebugFailureAnalysis e imposta il blocco dati della voce FA a un comando debugger specificato.

Sintassi

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

Parametri

Tag

Valore nell'enumerazione FA_TAG . Il tipo di dati associato a questo tag deve essere DEBUG_FA_ENTRY_EXTENSION_CMD o DEBUG_FA_ENTRY_ANSI_STRING.

[in] Extension

Puntatore a una stringa ANSI con terminazione null che è il comando debugger. Un esempio di comando del debugger è "!analizza -v".

Valore restituito

Se questo metodo ha esito positivo, restituisce un puntatore alla nuova struttura FA_ENTRY . Se questo metodo ha esito negativo, restituisce NULL.

Commenti

Questo metodo imposta il membro DataSize della nuova struttura FA_ENTRY sulla lunghezza, in byte, del comando di estensione, incluso il terminatore NULL .

Ogni tag è associato a uno dei tipi di dati nell'enumerazione FA_ENTRY_TYPE . Per determinare il tipo di dati associato a un tag, chiamare il metodo GetType dell'interfaccia IDebugFAEntryTags .

Per ottenere un puntatore a un'interfaccia IDebugFAEntryTags, chiamare il metodo GetDebugFATagControl dell'interfaccia IDebugFailureAnalysis2.

[sperry] Nota su Self: se il tag specificato non ha già avuto il tipo di dati fisso, questo metodo imposta e corregge il tipo di dati per il tag. Questo è il caso se l'oggetto DebugFailureAnalysis non ha ancora una voce FA con questo tag. Tuttavia, se l'oggetto DebugFailureAnalysis ha già una voce FA con questo tag, il tipo di dati del tag è fisso. Questo metodo crea una nuova voce FA con lo stesso tag. Ora cosa accade se il tipo di dati che si sta tentando di scrivere nel nuovo buffer di dati non corrisponde al tipo di dati corretto per questo tag. Viene quindi verificato se è OK per eseguire il cast dal tipo di dati fisso al tipo che si vuole scrivere.

È ok eseguire il cast tra ULONG64, POINTER e InstructionOffset. È OK per eseguire il cast tra String e ExtensionCommand. ULONG può essere solo ULONG. I gruppi STRING possono essere solo STRINGs.

Domanda: Quando viene risolto il tipo di dati di un tag? È quando viene creata la prima voce FA con tale tag?

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;

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione extsfns.h

Vedi anche

IDebugFAEntryTags

IDebugFailureAnalysis2

SetExtensionCommand

Scrittura di un plug-in dell'estensione di analisi per estendere !analizza

_EFN_Analyze