Modos de funcionamiento
Hay tres modos en los que el IDE puede funcionar, como se indica a continuación:
-
La forma en que el motor de depuración (DE) personalizado realiza la transición entre estos modos es una decisión de implementación que requiere que esté familiarizado con los mecanismos de transición. El DE puede implementar o no directamente estos modos. Estos modos son realmente modos de depuración de paquetes que cambian en función de la acción del usuario o los eventos del DE. Por ejemplo, la transición del modo de ejecución al modo de interrupción se solicita mediante un evento de detención del DE. La transición del modo de interrupción al modo de ejecución o al modo de paso la solicita el usuario que realiza operaciones como Paso o Ejecución. Para obtener más información sobre las transiciones del DE, consulte Control de ejecución.
Modo de diseño
El modo de diseño es el estado no de ejecución de la depuración de Visual Studio durante el cual puede establecer características de depuración en la aplicación.
Solo se usan algunas características de depuración durante el modo de diseño. Un desarrollador puede elegir establecer puntos de interrupción o crear expresiones de inspección. El DE nunca se carga ni se llama mientras el IDE está en modo de diseño. Solo se realiza la interacción con el DE durante los modos de ejecución y interrupción.
Modo de ejecución
El modo de ejecución se produce cuando un programa se ejecuta en una sesión de depuración en el IDE. La aplicación se ejecuta hasta su finalización, hasta que se alcanza un punto de interrupción o hasta que se produce una excepción. Cuando la aplicación se ejecuta hasta la finalización, el DE pasa al modo de diseño. Cuando se alcanza un punto de interrupción o se produce una excepción, el DE realiza la transición al modo de interrupción.
Modo de interrupción
El modo de interrupción se produce cuando se suspende la ejecución del programa de depuración. El modo de interrupción ofrece al desarrollador una instantánea de la aplicación en el momento de la interrupción y permite al desarrollador analizar el estado de la aplicación y cambiar cómo se ejecutará la aplicación. El desarrollador puede ver y editar código, examinar o modificar datos, reiniciar la aplicación, finalizar la ejecución o continuar la ejecución desde el mismo punto.
Se accede al modo de interrupción cuando el DE envía un evento de detención sincrónica. Los eventos de detención sincrónica, también denominados eventos de detención, notifican al administrador de depuración de sesión (SDM) y al IDE que la aplicación que se está depurando ha dejado de ejecutar código. Las interfaces IDebugBreakpointEvent2 e IDebugExceptionEvent2 son ejemplos de eventos de detención.
A los eventos de detención les sigue una llamada a uno de los métodos siguientes, que realizan la transición del depurador del modo de interrupción al modo de ejecución o paso:
Modo de paso
El modo paso a paso se produce cuando el programa pasa a la siguiente línea de código de una función, se queda en ella, la ignora o sale de ella. Se ejecuta un paso llamando al método Step. Este método requiere que DWORD
especifique las enumeraciones STEPUNIT y STEPKIND como parámetros de entrada.
Cuando el programa pasa correctamente a la siguiente línea de código o a una función, o se ejecuta en el cursor o en un punto de interrupción establecido, el DE vuelve automáticamente al modo de interrupción.