DkmClrModuleInstance.InterpretManagedMethod(DkmClrMethodId, ReadOnlyCollection<DkmClrType>, ReadOnlyCollection<DkmClrType>, DkmILInterpreterValue, ReadOnlyCollection<DkmILInterpreterValue>, Int32, DkmILInterpreterOptions, String) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Simule l’exécution d’une méthode sur un objet en interprétant le code MSIL de la méthode. Le résultat de la méthode est retourné à l’appelant. Toutefois, contrairement à une évaluation de fonction, dans laquelle la méthode est réellement exécutée dans la cible, l’interprétation d’une méthode n’exécute pas réellement la méthode, mais à la place, elle simule simplement le comportement de la méthode. Étant donné que la méthode ne s’exécute jamais réellement, tous les effets secondaires résultant de l’exécution de la méthode sont ignorés une fois l’interprétation de la méthode terminée, laissant le processus cible dans un état identique à celui de l’appel avant l’appel.
Contrainte d’emplacement : l’API doit être appelée à partir d’un composant d’analyse (au niveau du composant < 100 000).
Cette API a été introduite dans Visual Studio 12 RTM (DkmApiVersion. VS12RTM).
public:
Microsoft::VisualStudio::Debugger::Clr::DkmILInterpreterValue ^ InterpretManagedMethod(Microsoft::VisualStudio::Debugger::Clr::DkmClrMethodId Method, System::Collections::ObjectModel::ReadOnlyCollection<Microsoft::VisualStudio::Debugger::Clr::DkmClrType ^> ^ GenericTypeParameters, System::Collections::ObjectModel::ReadOnlyCollection<Microsoft::VisualStudio::Debugger::Clr::DkmClrType ^> ^ GenericMethodParameters, Microsoft::VisualStudio::Debugger::Clr::DkmILInterpreterValue ^ ThisParameter, System::Collections::ObjectModel::ReadOnlyCollection<Microsoft::VisualStudio::Debugger::Clr::DkmILInterpreterValue ^> ^ Parameters, int MaxInstructionCount, Microsoft::VisualStudio::Debugger::Clr::DkmILInterpreterOptions Options, [Runtime::InteropServices::Out] System::String ^ % ExceptionType);
public Microsoft.VisualStudio.Debugger.Clr.DkmILInterpreterValue InterpretManagedMethod (Microsoft.VisualStudio.Debugger.Clr.DkmClrMethodId Method, System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.VisualStudio.Debugger.Clr.DkmClrType> GenericTypeParameters, System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.VisualStudio.Debugger.Clr.DkmClrType> GenericMethodParameters, Microsoft.VisualStudio.Debugger.Clr.DkmILInterpreterValue ThisParameter, System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.VisualStudio.Debugger.Clr.DkmILInterpreterValue> Parameters, int MaxInstructionCount, Microsoft.VisualStudio.Debugger.Clr.DkmILInterpreterOptions Options, out string ExceptionType);
member this.InterpretManagedMethod : Microsoft.VisualStudio.Debugger.Clr.DkmClrMethodId * System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.VisualStudio.Debugger.Clr.DkmClrType> * System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.VisualStudio.Debugger.Clr.DkmClrType> * Microsoft.VisualStudio.Debugger.Clr.DkmILInterpreterValue * System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.VisualStudio.Debugger.Clr.DkmILInterpreterValue> * int * Microsoft.VisualStudio.Debugger.Clr.DkmILInterpreterOptions * string -> Microsoft.VisualStudio.Debugger.Clr.DkmILInterpreterValue
Public Function InterpretManagedMethod (Method As DkmClrMethodId, GenericTypeParameters As ReadOnlyCollection(Of DkmClrType), GenericMethodParameters As ReadOnlyCollection(Of DkmClrType), ThisParameter As DkmILInterpreterValue, Parameters As ReadOnlyCollection(Of DkmILInterpreterValue), MaxInstructionCount As Integer, Options As DkmILInterpreterOptions, ByRef ExceptionType As String) As DkmILInterpreterValue
Paramètres
- Method
- DkmClrMethodId
Dans Méthode à interpréter. Cette fonction ne prend pas en charge l’interprétation de certains types de méthodes, y compris, mais sans s’y limiter, les méthodes qui utilisent des paramètres ref ou out : les méthodes dont l’implémentation appelle du code natif via P/Invoke, COM Interop ou d’autres moyens.
- GenericTypeParameters
- ReadOnlyCollection<DkmClrType>
[In, facultatif] Si la méthode appartient à une classe générique, spécifie les instanciations des paramètres génériques du type.
- GenericMethodParameters
- ReadOnlyCollection<DkmClrType>
[In, facultatif] Si la méthode est générique, spécifie les instanciations des paramètres génériques de la méthode.
- ThisParameter
- DkmILInterpreterValue
[In, facultatif] Si la méthode à interpréter est non statique, spécifie l’instance d’objet non null sur laquelle la méthode doit être appelée. Si la méthode à interpréter est un constructeur de classe, il peut s’agir d’une valeur null ou non null. Si ce paramètre a la valeur NULL sur un constructeur de classe, nous allons créer virtuellement un nouvel objet et interpréter le constructeur. Si ce paramètre est non null pour un constructeur, nous allons interpréter l’appel au constructeur sur l’objet existant.
- Parameters
- ReadOnlyCollection<DkmILInterpreterValue>
[In, facultatif] Paramètres à passer dans la fonction, à l’exclusion du paramètre « This ». La valeur peut être null si la fonction à interpréter n’accepte aucun paramètre. Si la fonction accepte des paramètres, la longueur de ce tableau doit être égale au nombre de paramètres spécifié dans la signature de la méthode.
- MaxInstructionCount
- Int32
Dans Nombre maximal d’instructions IL que nous sommes autorisés à interpréter. L’interprétation IL sera abandonnée avec un code d’erreur de E_ABORT si le nombre réel d’instructions dépasse cette limite. Cette limite empêche l’accrochage de Visual Studio si le code en cours d’interprétation entre dans une boucle infinie.
- Options
- DkmILInterpreterOptions
Dans Options supplémentaires pour l’interpréteur IL.
- ExceptionType
- String
[Out, optional] Si la méthode lève une exception non gérée, le type de l’exception qui a été levée.
Retours
[Out, optional] Valeur de retour de la méthode. La valeur est null si la méthode retourne void ou lève une exception.