IDebugMethodField::EnumLocalsIDebugMethodField::EnumLocals

Crée un énumérateur pour les variables locales sélectionnés de la méthode.Creates an enumerator for selected local variables of the method.

SyntaxeSyntax

HRESULT EnumLocals(   
   IDebugAddress*     pAddress,  
   IEnumDebugFields** ppLocals  
);  
int EnumLocals(  
   IDebugAddress        pAddress,   
   out IEnumDebugFields ppLocals  
);  

ParamètresParameters

pAddress
[in] Un IDebugAddress objet représentant l’adresse de débogage qui sélectionne le contexte ou la portée à partir duquel obtenir les variables locales.[in] An IDebugAddress object representing the debug address that selects the context or scope from which to get the locals.

ppLocals
[out] Retourne un IEnumDebugFields l’objet qui représente une liste des variables locales ; sinon, retourne une valeur null s’il n’y a aucuns variables locales.[out] Returns an IEnumDebugFields object representing a list of the locals; otherwise, returns a null value if there are no locals.

Valeur de retourReturn Value

En cas de réussite, retourne S_OK ou retourne S_FALSE, s’il n’y a aucuns variables locales.If successful, returns S_OK or returns S_FALSE if there are no locals. Sinon, retourne un code d'erreur.Otherwise, returns an error code.

NotesRemarks

Uniquement les variables définies dans le bloc qui contient l’adresse de débogage donné sont énumérées.Only the variables defined within the block that contains the given debug address are enumerated. Si toutes les variables locales, y compris les variables locales générées par le compilateur sont nécessaires, appelez le EnumAllLocals (méthode).If all locals including any compiler-generated locals are needed, call the EnumAllLocals method.

Une méthode peut contenir plusieurs contextes ou des blocs de portée.A method can contain multiple scoping contexts or blocks. Par exemple, la méthode conçue suivante contient trois étendues, les deux blocs internes et le corps de la méthode.For example, the following contrived method contains three scopes, the two inner blocks and the method body itself.

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

Le IDebugMethodField objet représente le func méthode proprement dite.The IDebugMethodField object represents the func method itself. Appel de la EnumLocals méthode avec une IDebugAddress définie sur le Inner Scope 1 adresse retourne une énumération qui contient le temp1 variable, par exemple.Calling the EnumLocals method with an IDebugAddress set to the Inner Scope 1 address returns an enumeration containing the temp1 variable, for example.

Voir aussiSee Also

IDebugMethodField IDebugMethodField
IDebugAddress IDebugAddress
IEnumDebugFields IEnumDebugFields
EnumAllLocalsEnumAllLocals