Compartir a través de


Motor de depuración

Un motor de depuración (DE) funciona con el intérprete o el sistema operativo para proporcionar servicios de depuración, como el control de ejecución, los puntos de interrupción y la evaluación de expresiones. El DE es responsable de supervisar el estado de un programa que se está depurando. Para ello, el DE usa todos los métodos disponibles para él en el entorno de ejecución admitido, ya sea desde la CPU o desde las API proporcionadas por el tiempo de ejecución.

Por ejemplo, Common Language Runtime (CLR) proporciona mecanismos para supervisar un programa en ejecución a través de las interfaces ICorDebugXXX. Un DE que admite CLR usa las interfaces ICorDebugXXX adecuadas para realizar un seguimiento de un programa de código administrado que se está depurando. A continuación, comunica los cambios de estado al administrador de depuración de sesión (SDM), que reenvía dicha información al IDE de Visual Studio.

Nota:

Un motor de depuración tiene como destino un entorno de ejecución específico, es decir, el sistema en el que se ejecuta el programa que se está depurando. CLR es el tiempo de ejecución para código administrado y el tiempo de ejecución de Win32 es para aplicaciones nativas de Windows. Si el lenguaje que crea puede tener como destino uno de estos dos entornos de ejecución, Visual Studio ya proporciona los motores de depuración necesarios. Todo lo que tiene que implementar es un evaluador de expresiones.

Operación del motor de depuración

Los servicios de supervisión se implementan a través de las interfaces DE y pueden hacer que el paquete de depuración pase entre diferentes modos operativos. Para obtener más información, consulte Modos operativos. Normalmente solo hay una implementación de DE por entorno en tiempo de ejecución.

Nota:

Aunque hay implementaciones de DE independientes para Transact-SQL y JScript, VBScript y JScript comparten un único DE.

La depuración en Visual Studio permite que los motores de depuración se ejecuten de las siguientes maneras: ya sea en el mismo proceso que el shell de Visual Studio o en el mismo proceso que el programa de destino que se está depurando. Normalmente, esta última forma se produce cuando el proceso que se está depurando es en realidad un script que se ejecuta en un intérprete. El motor de depuración debe tener un conocimiento detallado del intérprete para supervisar el script. En este caso, el intérprete es realmente un entorno de ejecución; los motores de depuración son para implementaciones específicas de entornos de ejecución. Además, la implementación de un único DE se puede dividir entre límites de proceso y máquina (por ejemplo, depuración remota).

El DE expone las interfaces de depuración de Visual Studio. Toda la comunicación es a través de COM. Si el DE se carga en proceso, fuera de proceso o en otro equipo, no afecta a la comunicación de componentes.

El DE funciona con un componente de evaluador de expresiones para permitir que el DE para ese tiempo de ejecución determinado comprenda la sintaxis de las expresiones. El DE también funciona con un componente de controlador de símbolos para acceder a la información de depuración simbólica generada por el compilador de lenguaje. Para obtener más información, vea Evaluador de expresiones y proveedor de símbolos.

Consulte también