ICLRDebugging::OpenVirtualProcess, méthode
Obtient l’interface ICorDebugProcess correspondant à un module CLR (Common Language Runtime) chargé dans le processus.
Syntaxe
HRESULT OpenVirtualProcess(
[in] ULONG64 moduleBaseAddress,
[in] IUnknown * pDataTarget,
[in] ICLRDebuggingLibraryProvider * pLibraryProvider,
[in] CLR_DEBUGGING_VERSION * pMaxDebuggerSupportedVersion,
[in] REFIID riidProcess,
[out, iid_is(riidProcess)] IUnknown ** ppProcess,
[in, out] CLR_DEBUGGING_VERSION * pVersion,
[out] CLR_DEBUGGING_PROCESS_FLAGS * pdwFlags);
Paramètres
moduleBaseAddress
[in] L’adresse de base d’un module dans le processus cible. COR_E_NOT_CLR est retourné si le module spécifié n’est pas un module CLR.
pDataTarget
[in] Une abstraction de la cible de données qui permet au débogueur managé d’inspecter l’état du processus. Le débogueur doit implémenter l’interface ICorDebugDataTarget. Vous devez implémenter l’interface ICLRDebuggingLibraryProvider pour prendre en charge les scénarios où le CLR en cours de débogage n’est pas installé localement sur l’ordinateur.
pLibraryProvider
[in] Une interface de rappel du fournisseur de bibliothèque permettant la localisation et le chargement à la demande des bibliothèques de débogage spécifiques de la version. Ce paramètre n’est requis que si ppProcess
ou pFlags
n’est pas null
.
pMaxDebuggerSupportedVersion
[in] La version la plus élevée du CLR que ce débogueur peut déboguer. Vous devez spécifier les versions majeure, mineure et de build de la dernière version du CLR que ce débogueur prend en charge, et définir le numéro de révision sur 65535 pour prendre en charge les futures versions de maintenance sur place du CLR.
riidProcess
[in] L’ID de l’interface ICorDebugProcess à récupérer. Actuellement, les seules valeurs acceptées sont IID_CORDEBUGPROCESS3, IID_CORDEBUGPROCESS2 et IID_CORDEBUGPROCESS.
ppProcess
[out] Un pointeur vers l’interface COM identifiée par riidProcess
.
pVersion
[in, out] La version du CLR. Lors de l’entrée, cette valeur peut être null
. Elle peut également pointer vers une structure CLR_DEBUGGING_VERSION, auquel cas le champ de wStructVersion
la structure doit être initialisé à 0 (zéro).
À la sortie, la structure CLR_DEBUGGING_VERSION
retournée est renseignée avec les informations de version du CLR.
pdwFlags
[out] Les indicateurs informatifs sur le runtime spécifié. Pour obtenir une description des indicateurs, consultez la rubrique CLR_DEBUGGING_PROCESS_FLAGS.
Valeur de retour
Cette méthode retourne les HRESULT spécifiques suivants ainsi que les erreurs HRESULT indiquant l'échec de la méthode.
HRESULT | Description |
---|---|
S_OK | La commande s'est correctement terminée. |
E_POINTER | pDataTarget est null . |
CORDBG_E_LIBRARY_PROVIDER_ERROR | Le rappel d’ICLRDebuggingLibraryProvider retourne une erreur ou ne fournit pas de descripteur valide. |
CORDBG_E_MISSING_DATA_TARGET_INTERFACE | pDataTarget n’implémente pas les interfaces cibles de données requises pour cette version du runtime. |
CORDBG_E_NOT_CLR | Le module indiqué n’est pas un module CLR. Ce HRESULT est également retourné quand un module CLR ne peut pas être détecté parce que la mémoire a été endommagée, que le module n’est pas disponible ou que la version de CLR est postérieure à la version de shim. |
CORDBG_E_UNSUPPORTED_DEBUGGING_MODEL | Cette version du runtime ne prend pas en charge ce modèle de débogage. Actuellement, le modèle de débogage n’est pas pris en charge par les versions CLR antérieures à .NET Framework 4. Le paramètre de sortie pwszVersion est toujours défini sur la valeur correcte après cette erreur. |
CORDBG_E_UNSUPPORTED_FORWARD_COMPAT | La version du CLR est supérieure à la version que ce débogueur prétend prendre en charge. Le paramètre de sortie pwszVersion est toujours défini sur la valeur correcte après cette erreur. |
E_NO_INTERFACE | L’interface riidProcess n’est pas disponible. |
CORDBG_E_UNSUPPORTED_VERSION_STRUCT | La structure CLR_DEBUGGING_VERSION n’a pas de valeur reconnue pour wStructVersion . La seule valeur acceptée à ce stade est 0. |
Exceptions
Notes
Spécifications
Plateformes : Consultez Configuration requise.
En-tête : CorDebug.idl, CorDebug.h
Bibliothèque : CorGuids.lib
Versions du .NET Framework : Disponibles depuis 4
Versions de .NET : Disponibles depuis .NET Core 2.1