Partager via


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

La méthode AddExtensionCommand ajoute une nouvelle entrée FA à un objet DebugFailureAnalysis et définit le bloc de données de l’entrée FA sur une commande de débogueur spécifiée.

Syntaxe

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

Paramètres

Tag

Valeur dans l’énumération FA_TAG . Le type de données associé à cette balise doit être DEBUG_FA_ENTRY_EXTENSION_CMD ou DEBUG_FA_ENTRY_ANSI_STRING.

[in] Extension

Pointeur vers une chaîne ANSI terminée par null qui est la commande de débogueur. Un exemple de commande de débogueur est « !analyze -v ».

Valeur retournée

Si cette méthode réussit, un retourne un pointeur vers la nouvelle structure FA_ENTRY . Si cette méthode échoue, elle retourne NULL.

Remarques

Cette méthode définit le membre DataSize de la nouvelle structure FA_ENTRY sur la longueur, en octets, de la commande d’extension, y compris la terminaison NULL .

Chaque balise est associée à l’un des types de données de l’énumération FA_ENTRY_TYPE . Pour déterminer le type de données associé à une balise, appelez la méthode GetType de l’interface IDebugFAEntryTags .

Pour obtenir un pointeur vers une interface IDebugFAEntryTags , appelez la méthode GetDebugFATagControl de l’interface IDebugFailureAnalysis2 .

[sperry] Remarque à Auto : si le type de données de la balise donnée n’a pas encore été corrigé, cette méthode définit et corrige le type de données de la balise. Ce serait le cas si l’objet DebugFailureAnalysis n’a pas encore d’entrée FA avec cette balise. Mais si l’objet DebugFailureAnalysis a déjà une entrée FA avec cette balise, le type de données de la balise est résolu. Cette méthode crée une entrée FA avec la même balise. Que se passe-t-il maintenant si le type de données que nous essayons d’écrire dans la nouvelle mémoire tampon de données ne correspond pas au type de données qui a été résolu pour cette balise. Ensuite, nous voyons s’il est acceptable de passer du type de données fixe au type que nous voulons écrire.

Vous pouvez effectuer un cast entre ULONG64, POINTEUR et InstructionOffset. Vous pouvez effectuer un cast entre String et ExtensionCommand. ULONG peut uniquement être ULONG. Les STRINGs ne peuvent être que des STRING.

Question : Quand le type de données d’une balise est-il résolu ? Est-ce lors de la création de la première entrée FA avec cette balise ?

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;

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête extsfns.h

Voir aussi

IDebugFAEntryTags

IDebugFailureAnalysis2

SetExtensionCommand

Écriture d’un plug-in d’extension d’analyse pour étendre !analyser

_EFN_Analyze