Motor de depuraciónDebug engine

Un motor de depuración (DE) funciona con el sistema operativo o intérprete para proporcionar servicios de depuración, como la evaluación de expresión, los puntos de interrupción y control de ejecución.A debug engine (DE) works with the interpreter or operating system to provide debugging services such as execution control, breakpoints, and expression evaluation. La DE es responsable de supervisar el estado de un programa que se está depurando.The DE is responsible for monitoring the state of a program being debugged. Para lograr esto, la DE usa los métodos que sean a su disposición en el runtime compatible, si de la CPU o de API proporcionado por el tiempo de ejecución.To do accomplish this, the DE uses whatever methods are available to it in the supported runtime, whether from the CPU or from APIs supplied by the runtime.

Por ejemplo, common language runtime (CLR) proporciona mecanismos para supervisar un programa en ejecución mediante las interfaces de ICorDebugXXX.For example, the common language runtime (CLR) supplies mechanisms to monitor a running program through the ICorDebugXXX interfaces. A DE compatible con CLR usa las interfaces de ICorDebugXXX adecuadas para realizar un seguimiento de un programa de código administrado que se está depurando.A DE that supports the CLR uses the appropriate ICorDebugXXX interfaces to keep track of a managed code program being debugged. Se comunica a continuación, los cambios de estado para el Administrador de sesión de depuración (SDM), que reenvía dicha información a la Programa para la mejoraVisual Studio IDE.It then communicates any changes of state to the session debug manager (SDM), which forwards such information to the Programa para la mejoraVisual Studio IDE.

Note

Un motor de depuración tiene como destino un tiempo de ejecución específico, es decir, el sistema en el que el programa que se está depurando se ejecuta.A debug engine targets a specific runtime, that is, the system in which the program being debugged runs. 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.The CLR is the runtime for managed code, and the Win32 runtime is for native Windows applications. Si el idioma que cree puede tener como destino uno de estos dos tiempos de ejecución, Programa para la mejoraVisual Studio ya suministra los motores de depuración necesarias.If the language you create can target one of these two runtimes, Programa para la mejoraVisual Studio already supplies the necessary debug engines. Lo único que debe implementar es un evaluador de expresiones.All you have to implement is an expression evaluator.

Operación del motor de depuraciónDebug engine operation

Los servicios de supervisión se implementan a través de las interfaces DE y pueden hacer que el paquete de depuración en la transición entre distintos modos de funcionamiento.The monitoring services are implemented through the DE interfaces and can cause the debug package to transition between different operational modes. Para obtener más información, consulte modos operativos.For more information, see Operational modes. Normalmente hay solo una implementación DE cada entorno de tiempo de ejecución.There is typically only one DE implementation per run-time environment.

Note

Aunque hay otras implementaciones DE para Transact-SQL y JScriptJScript, VBScript y JScriptJScript comparten una única DE.While there are separate DE implementations for Transact-SQL and JScriptJScript, VBScript and JScriptJScript share a single DE.

Programa para la mejoraVisual Studio depuración permite depurar motores para ejecutar de dos maneras: ya sea en el mismo proceso que la Programa para la mejoraVisual Studio de shell o en el mismo proceso que el programa de destino que se está depurando.debugging enables debug engines to run one of two ways: either in the same process as the Programa para la mejoraVisual Studio shell, or in the same process as the target program being debugged. La segunda forma normalmente se produce cuando el proceso que se está depurando es realmente un script que se ejecuta en un intérprete.The latter form usually occurs when the process being debugged is actually a script running under an interpreter. El motor de depuración debe tener un conocimiento profundo del intérprete para supervisar la secuencia de comandos.The debug engine must have intimate knowledge of the interpreter in order to monitor the script. En este caso, el intérprete es realmente un tiempo de ejecución; motores de depuración son para las implementaciones en tiempo de ejecución específica.In this case, the interpreter is actually a runtime; debug engines are for specific runtime implementations. Además, se puede dividir la implementación de un único DE a través de límites de proceso y máquinas (por ejemplo, depuración remota).In addition, implementation of a single DE can be split across process and machine boundaries (for example, remote debugging).

La muestra DE la Programa para la mejoraVisual Studio interfaces de depuración.The DE exposes the Programa para la mejoraVisual Studio debugging interfaces. Es toda la comunicación a través de COM.All communication is through COM. Si se carga la DE en proceso, fuera de proceso o en otro equipo, no afecta la comunicación de componentes.Whether the DE is loaded in-process, out-of-process, or on another computer, it does not affect component communication.

La DE funciona con un componente de evaluador de expresión para habilitar la DE para dicho runtime determinado comprender la sintaxis de expresiones.The DE works with an expression evaluator component to enable the DE for that particular runtime to understand the syntax of expressions. La DE también funciona con un componente de controlador de símbolos para tener acceso a la información de depuración simbólica generada por el compilador de lenguaje.The DE also works with a symbol handler component to access the symbolic debug information generated by the language compiler. Para obtener más información, consulte evaluador y proveedor de símbolos.For more information, see Expression evaluator and Symbol provider.

Vea tambiénSee also