Share via


Interfaz ICorDebugEval

Proporciona métodos que permiten al depurador ejecutar código en el contexto del código que se está depurando.

Métodos

Método Descripción
Abort (Método) Anula el cálculo ICorDebugEval que este objeto está realizando actualmente.
Método CallFunction Configura una llamada a la función especificada. (Obsoleto en la versión 2.0 de .NET Framework; use ICorDebugEval2::CallParameterizedFunction en su lugar).
Método CreateValue Obtiene un puntero de interfaz a un objeto "ICorDebugValue" del tipo especificado, con un valor inicial de cero o null. (Obsoleto en .NET Framework 2.0; use ICorDebugEval2::CreateValueForType en su lugar).
Método GetResult Obtiene un puntero de interfaz a un objeto ICorDebugValue que contiene los resultados de la evaluación.
Método GetThread Obtiene un puntero de interfaz al "ICorDebugThread" donde se ejecuta esta evaluación o se ejecutará.
IsActive (Método) Obtiene un valor que indica si este objeto ICorDebugEval se está ejecutando actualmente.
Método NewArray Asigna una nueva matriz del tipo de elemento y las dimensiones especificados. (Obsoleto en .NET Framework 2.0; use ICorDebugEval2::NewParameterizedArray en su lugar).
Método NewObject Asigna una nueva instancia de objeto y llama al método de constructor especificado. (Obsoleto en .NET Framework 2.0; use ICorDebugEval2::NewParameterizedObject en su lugar).
Método NewObjectNoConstructor Asigna una nueva instancia de objeto del tipo especificado, sin intentar llamar a un método constructor. (Obsoleto en .NET Framework 2.0; use ICorDebugEval2::NewParameterizedObjectNoConstructor en su lugar).
Método NewString Asigna un nuevo objeto de cadena con el contenido especificado.

Comentarios

Se crea un objeto ICorDebugEval en el contexto de un subproceso específico que se usa para realizar las evaluaciones. Todos los objetos y tipos usados en una evaluación determinada deben residir dentro del mismo dominio de aplicación. Ese dominio de aplicación no debe ser el mismo que el dominio de aplicación actual del subproceso. Las evaluaciones se pueden anidar.

Las operaciones de la evaluación no se completan hasta que el depurador llama a ICorDebugController::Continuey, a continuación, recibe una devolución de llamada ICorDebugManagedCallback::EvalComplete. Si necesita usar la funcionalidad de evaluación sin permitir que se ejecuten otros subprocesos, suspenda los subprocesos mediante ICorDebugController::SetAllThreadsDebugState o ICorDebugController::Stop antes de llamar a ICorDebugController::Continue.

Dado que el código de usuario se ejecuta cuando la evaluación está en curso, se pueden producir eventos de depuración, incluidas las cargas de clase y los puntos de interrupción. El depurador recibirá devoluciones de llamada, como es habitual, para estos eventos. El estado de la evaluación se verá como parte de la inspección del estado normal del programa. La cadena de pila será una cadena CHAIN_FUNC_EVAL (vea la enumeración "CorDebugStepReason" y el método ICorDebugChain::GetReason). La API completa del depurador seguirá funcionando de la forma normal.

Si surge una situación de bucle interbloqueo o infinito, es posible que el código de usuario nunca se complete. En tal caso, debe llamar a ICorDebugEval::Abort antes de reanudar el programa.

Nota

Esta interfaz no admite que se la llame de forma remota, ya sea entre procesos o entre equipos.

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.lib

Versiones de .NET Framework: está disponible desde la versión 1.0

Consulte también