La enumeración DebuggableAttribute..::.DebuggingModes especifica cómo el motor en tiempo de ejecución debe realizar un seguimiento de la información importante para el depurador durante la generación de código. Esta información contribuye a que el depurador mejore la depuración. En la versión 2.0 de .NET Framework, llamar a un constructor DebuggableAttribute(DebuggableAttribute..::.DebuggingModes) con un parámetro modes cuyo valor es Default equivale a llamar a un constructor DebuggableAttribute(Boolean, Boolean) con un parámetro isJITTrackingEnabled cuyo valor es true en la versión 1.1 .NET Framework. A diferencia de la versión 1.1, la versión 2.0 no permite desactivar el seguimiento del compilador Just-In-time (JIT). El seguimiento JIT siempre está habilitado para los archivos depurables.
Los puntos de secuencia se usan para indicar las ubicaciones del código en Lenguaje intermedio de Microsoft (MSIL, Microsoft intermediate language) que un usuario de un depurador espera poder consultar de manera única, por ejemplo, para establecer un punto de interrupción. El compilador JIT garantiza que no compilará el código MSIL de dos puntos de secuencia diferentes en una instrucción máquina nativa única. De forma predeterminada, el compilador JIT examina el almacén de símbolos del archivo de base de datos de programa (PDB, program database) para obtener una lista de puntos de secuencia adicionales. Sin embargo, cargar el archivo PDB requiere que el archivo esté disponible y tenga un impacto de rendimiento negativo. En la versión 2.0, los compiladores pueden emitir "puntos de secuencia implícitos" en las secuencias de código MSIL a través del uso de instrucciones "nop" del Lenguaje intermedio de Microsoft. Tales compiladores deberían establecer IgnoreSymbolStoreSequencePoints para indicar a Common Language Runtime que no cargue el archivo PDB.
Nota: |
|---|
Esta propiedad la usan principalmente los desarrolladores de lenguajes. No se suele utilizar en el desarrollo de aplicaciones. Los entornos de desarrollo utilizan DebuggableAttribute..::.DebuggingModes basados en los parámetros de compilador como /debug y /optimize. |