Freigeben über


IDebugFailureAnalysis2::AddExtensionCommand-Methode (extsfns.h)

Die AddExtensionCommand--Methode fügt einen neuen FA-Eintrag zu einem DebugFailureAnalysis-Objekt hinzu und legt den Datenblock des FA-Eintrags auf einen angegebenen Debuggerbefehl fest.

Syntax

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

Parameter

Tag

Ein Wert in der FA_TAG-Aufzählung. Der diesem Tag zugeordnete Datentyp muss DEBUG_FA_ENTRY_EXTENSION_CMD oder DEBUG_FA_ENTRY_ANSI_STRINGsein.

[in] Extension

Ein Zeiger auf eine MIT NULL beendete ANSI-Zeichenfolge, die der Debuggerbefehl ist. Ein Beispiel für den Debuggerbefehl ist "!analyze -v".

Rückgabewert

Wenn diese Methode erfolgreich verläuft, wird ein Zeiger auf die neue FA_ENTRY Struktur zurückgegeben. Wenn diese Methode fehlschlägt, wird NULL-zurückgegeben.

Bemerkungen

Diese Methode legt den DataSize Member der neuen FA_ENTRY Struktur auf die Länge des Erweiterungsbefehls in Bytes fest, einschließlich des NULL Endator.

Jedes Tag ist einem der Datentypen in der FA_ENTRY_TYPE-Aufzählung zugeordnet. Um den einem Tag zugeordneten Datentyp zu ermitteln, rufen Sie die GetType--Methode der IDebugFAEntryTags Schnittstelle auf.

Rufen Sie zum Abrufen eines Zeigers auf eine IDebugFAEntryTags- Schnittstelle die GetDebugFATagControl-methode der IDebugFailureAnalysis2-Schnittstelle auf.

[sperry] Hinweis zu Self: Wenn das angegebene Tag seinen Datentyp noch nicht behoben hat, legt diese Methode den Datentyp für das Tag fest und behebt diesen. Dies wäre der Fall, wenn das DebugFailureAnalysis-Objekt noch keinen FA-Eintrag mit diesem Tag enthält. Wenn das DebugFailureAnalysis-Objekt jedoch bereits über einen FA-Eintrag mit diesem Tag verfügt, wird der Datentyp des Tags behoben. Diese Methode erstellt einen neuen FA-Eintrag mit demselben Tag. Was geschieht nun, wenn der Datentyp, den wir in den neuen Datenpuffer schreiben möchten, nicht mit dem Datentyp übereinstimmt, der für dieses Tag behoben wurde. Dann wird angezeigt, ob es OK ist, aus dem festen Datentyp in den Typ zu umwandeln, den wir schreiben möchten.

Es ist OK, zwischen ULONG64, ZEIGER und InstructionOffset zu wandeln. Es ist OK, zwischen Zeichenfolge und ExtensionCommand zu umwandeln. ULONG kann nur ULONG sein. STRINGs können nur STRINGs sein.

Frage: Wann wird der Datentyp eines Tags behoben? Wird der erste FA-Eintrag mit diesem Tag erstellt?

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;

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- extsfns.h

Siehe auch

IDebugFAEntryTags

IDebugFailureAnalysis2

SetExtensionCommand-

Schreiben eines Analysis Extension Plug-Ins zum Erweitern von !analyze

_EFN_Analyze