Share via


IDebugMethodField::EnumLocals

Erstellt einen Enumerator für ausgewählte lokale Variablen der Methode.

Syntax

int EnumLocals(
    IDebugAddress        pAddress,
    out IEnumDebugFields ppLocals
);

Parameter

pAddress
[in] Ein IDebugAddress -Objekt, das die Debugadresse darstellt, die den Kontext oder den Bereich auswählt, aus dem die Gebietsschemas abgerufen werden sollen.

ppLocals
[out] Gibt ein IEnumDebugFields -Objekt zurück, das eine Liste der Gebietsschemas darstellt. Andernfalls wird ein NULL-Wert zurückgegeben, wenn keine Lokalen vorhanden sind.

Rückgabewert

Bei erfolgreicher Ausführung gibt S_OK zurück oder gibt S_FALSE zurück, wenn keine Lokalen vorhanden sind. Andernfalls wird ein Fehlercode zurückgegeben.

Hinweise

Es werden nur die variablen aufgelistet, die innerhalb des Blocks definiert sind, der die angegebene Debugadresse enthält. Wenn alle Gebietsschemas einschließlich von Compiler generierten Lokalen erforderlich sind, rufen Sie die EnumAllLocals-Methode auf.

Eine Methode kann mehrere Bereichsdefinitionskontexte oder -blöcke enthalten. Die folgende contrived-Methode enthält beispielsweise drei Bereiche, die beiden inneren Blöcke und den Methodentext selbst.

public void func(int index)
{
    // Method body scope
    int a = 0;
    if (index == 1)
    {
        // Inner scope 1
        int temp1 = a;
    }
    else
    {
        // Inner scope 2
        int temp2 = a;
    }
}

Das IDebugMethodField -Objekt stellt die func Methode selbst dar. Durch Aufrufen der EnumLocals Methode mit einer auf die Inner Scope 1 Adresse festgelegten IDebugAddress wird beispielsweise eine Aufzählung zurückgegeben, die die temp1 Variable enthält.

Siehe auch