Partager via


IDebugMethodField::EnumLocals

Crée un énumérateur pour les variables locales sélectionnées de la méthode.

Syntaxe

int EnumLocals(
    IDebugAddress        pAddress,
    out IEnumDebugFields ppLocals
);

Paramètres

pAddress
[in] Objet IDebugAddress représentant l’adresse de débogage qui sélectionne le contexte ou l’étendue à partir duquel obtenir les locaux.

ppLocals
[out] Renvoie un objet IEnumDebugFields représentant une liste des variables locales ; sinon, retourne une valeur Null s’il n’y a pas de local.

Valeur de retour

Si elle réussit, retourne S_OK ou retourne S_FALSE s’il n’y a pas de local. Sinon, retourne un code d'erreur.

Notes

Seules les variables définies dans le bloc qui contient l’adresse de débogage donnée sont énumérées. Si tous les locaux, y compris les locaux générés par le compilateur, sont nécessaires, appelez la méthode EnumAllLocals .

Une méthode peut contenir plusieurs contextes ou blocs d’étendue. Par exemple, la méthode contrived suivante contient trois étendues, les deux blocs internes et le corps de la méthode lui-même.

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;
    }
}

L’objet IDebugMethodField représente la func méthode elle-même. L’appel de la EnumLocals méthode avec un IDebugAddress défini sur l’adresse Inner Scope 1 retourne une énumération contenant la temp1 variable, par exemple.

Voir aussi