DebuggableAttribute.DebuggingModes Enumeración
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Especifica el modo de depuración para el compilador Just-In-Time (JIT).
Esta enumeración admite una combinación bit a bit de sus valores de miembro.
public: enum class DebuggableAttribute::DebuggingModes
[System.Flags]
public enum DebuggableAttribute.DebuggingModes
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
public enum DebuggableAttribute.DebuggingModes
[<System.Flags>]
type DebuggableAttribute.DebuggingModes =
[<System.Flags>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DebuggableAttribute.DebuggingModes =
Public Enum DebuggableAttribute.DebuggingModes
- Herencia
- Atributos
Campos
Default | 1 | Da instrucciones al compilador JIT para que siga su comportamiento predeterminado, que incluye habilitar optimizaciones, deshabilitar la compatibilidad con la función Editar y continuar, y utilizar los puntos de secuencia del almacén de símbolos, si es que existen. A partir de la versión 2.0 de .NET Framework, se genera siempre información de seguimiento JIT, el desplazamiento de Lenguaje intermedio de Microsoft (MSIL) correspondiente al desplazamiento de código nativo dentro de un método. |
DisableOptimizations | 256 | Deshabilita las optimizaciones realizadas por el compilador para que el archivo de salida sea menor, más rápido y más eficaz. Las optimizaciones causan la reestructuración del código en el archivo de salida, por lo que pueden dificultar la depuración. Normalmente, la optimización debe estar deshabilitada durante la depuración. En versiones 2.0 o posteriores, combine este valor con Default (Default | DisableOptimizations) para habilitar el seguimiento JIT y deshabilitar las optimizaciones. |
EnableEditAndContinue | 4 | Permite modificar y continuar. Permite realizar cambios en el código fuente mientras el programa está en modo de interrupción. La capacidad de editar y continuar depende del compilador. |
IgnoreSymbolStoreSequencePoints | 2 | Utiliza los puntos de secuencia implícitos de MSIL y no los puntos de secuencia de la base de datos del programa (PDB). La información simbólica suele incluir al menos un desplazamiento de Lenguaje intermedio de Microsoft (MSIL) para cada línea de código fuente. Cuando el compilador Just-In-Time (JIT) está a punto de compilar un método, solicita a los servicios de generación de perfiles una lista de los desplazamientos MSIL que deben conservarse. Estos desplazamientos de MSIL se denominan puntos de secuencia. |
None | 0 | A partir de la versión 2.0 de .NET Framework, siempre se genera información de seguimiento JIT y esta marca tiene el mismo efecto que Default, con la excepción de que establece la propiedad IsJITTrackingEnabled en Tenga en cuenta que, a diferencia de la marca DisableOptimizations, la marca None no se puede usar para deshabilitar las optimizaciones JIT. |
Comentarios
La DebuggableAttribute.DebuggingModes enumeración especifica cómo se realiza el seguimiento de la información importante para el depurador durante la generación de código. Esta información ayuda al depurador a proporcionar una experiencia de depuración enriquecida. A diferencia de .NET Framework versión 1.1, las versiones 2.0 o posteriores no permiten desactivar el seguimiento por parte del compilador Just-In-Time (JIT). El seguimiento JIT siempre está habilitado para archivos depurables. En la versión 2.0 y posteriores, los valores de enumeración tienen el efecto siguiente.
Modo de depuración | Resultado |
---|---|
Ninguno | Seguimiento en, optimizaciones JIT habilitadas |
Default | Seguimiento en, optimizaciones JIT habilitadas |
DisableOptimizations | Seguimiento en, optimizaciones JIT habilitadas |
Valor predeterminado | DisableOptimizations | Seguimiento en, optimizaciones JIT deshabilitadas |
Los puntos de secuencia se usan para indicar ubicaciones en el código del lenguaje intermedio de Microsoft (MSIL) al que un usuario del depurador espera poder hacer referencia de forma única, como para establecer un punto de interrupción. El compilador JIT garantiza que no compila el MSIL en dos puntos de secuencia diferentes en una sola instrucción nativa. De forma predeterminada, el compilador JIT examina el almacén de símbolos en el archivo de base de datos de programa (PDB) para obtener una lista de puntos de secuencia adicionales. Sin embargo, cargar el archivo PDB requiere que el archivo esté disponible y que tenga un impacto negativo en el rendimiento. A partir de la versión 2.0, los compiladores pueden emitir "puntos de secuencia implícitos" en el flujo de código MSIL a través del uso de instrucciones de MSILnop"
. Estos compiladores deben establecer la IgnoreSymbolStoreSequencePoints
marca para notificar a Common Language Runtime que no cargue el archivo PDB.
Nota
Esta enumeración la usan principalmente los desarrolladores de lenguajes. Por lo general, no se usa en el desarrollo de aplicaciones. Los entornos de desarrollo usan DebuggableAttribute.DebuggingModes en función de parámetros del compilador, como /debug y /optimize.