Partager via


IDebugFailureAnalysis2 ::AddExtensionCommand, méthode (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 de 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 du débogueur. Un exemple de commande de débogueur est « !analyze -v ».

Valeur de retour

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

Remarques

Cette méthode définit le DataSize membre de la nouvelle structure de FA_ENTRY sur la longueur, en octets, de la commande d’extension, y compris la fin de 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 la balise donnée n’a pas déjà eu son type de données fixe, cette méthode définit et corrige le type de données de la balise. Cela serait le cas si l’objet DebugFailureAnalysis n’a pas encore d’entrée fa avec cette balise. Toutefois, 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. À présent, que se passe-t-il 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é corrigé pour cette balise. Ensuite, nous voyons s’il est ok de convertir le type de données fixe vers le type que nous voulons écrire.

Il est ok de caster entre ULONG64, POINTER et InstructionOffset. Il est possible de caster entre String et ExtensionCommand. ULONG ne peut être ULONG que. Les STRING ne peuvent être que des STRING.

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

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;

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête extsfns.h

Voir aussi

IDebugFAEntryTags

IDebugFailureAnalysis2

SetExtensionCommand

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

_EFN_Analyze