ICorDebugEval (Interfaz)
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 |
---|---|
Anula el cálculo que está realizando actualmente este objeto ICorDebugEval. |
|
Configura una llamada a la función especificada. (Obsoleto en .NET Framework 2.0; utilice ICorDebugEval2::CallParameterizedFunction en su lugar). |
|
Obtiene un puntero de interfaz a un objeto ICorDebugValue (Interfaz) del tipo especificado, con un valor inicial de cero o null. (Obsoleto en .NET Framework 2.0; utilice ICorDebugEval2::CreateValueForType en su lugar). |
|
Obtiene un puntero de interfaz a una instancia de ICorDebugValue que contiene los resultados de la evaluación. |
|
Obtiene un puntero de interfaz a la instancia de ICorDebugThread en la que se está ejecutando o se va a ejecutar esta evaluación. |
|
Obtiene un valor que indica si este objeto ICorDebugEval se está ejecutando actualmente. |
|
Asigna una nueva matriz del tipo de elemento y dimensiones especificados. (Obsoleto en .NET Framework 2.0; utilice ICorDebugEval2::NewParameterizedArray en su lugar). |
|
Asigna una nueva instancia de objeto y llama al método de constructor especificado. (Obsoleto en .NET Framework 2.0; utilice ICorDebugEval2::NewParameterizedObject en su lugar). |
|
Asigna una nueva instancia de objeto del tipo especificado, pero no intenta llamar a un método de constructor. (Obsoleto en .NET Framework 2.0; utilice ICorDebugEval2::NewParameterizedObjectNoConstructor en su lugar). |
|
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 utiliza para realizar las evaluaciones. Todos los objetos y tipos utilizados en una evaluación determinada deben residir dentro del mismo dominio de aplicación. Ese dominio de aplicación no tiene que ser el dominio de aplicación actual del subproceso. Las evaluaciones se pueden anidar.
Las operaciones de evaluación no se completan hasta que el depurador llama a ICorDebugController::Continue y recibe después una devolución de llamada de ICorDebugManagedCallback::EvalComplete. Si necesita utilizar la funcionalidad de evaluación sin permitir la ejecución de otros subprocesos, suspenda los subprocesos utilizando ICorDebugController::SetAllThreadsDebugState o ICorDebugController::Stop antes de llamar a ICorDebugController::Continue.
Dado que el código de usuario se está ejecutando cuando la evaluación está en curso, pueden producirse eventos de depuración, incluso cargas de clase y puntos de interrupción. El depurador recibirá las devoluciones de llamada, como es habitual, para estos eventos. El estado de la evaluación se considerará una 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 del depurador continuará funcionando con normalidad.
Si se producen interbloqueos o bucles infinitos, es posible que el código de usuario nunca finalice. En este 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 de .NET Framework.
Encabezado: CorDebug.idl, CorDebug.h
Biblioteca: CorGuids.lib
Versiones de .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0