DebuggableAttribute.DebuggingModes Enumeración

Definición

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
DebuggableAttribute.DebuggingModes
Atributos

Campos

Nombre Valor Description
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, salvo que establece la propiedad IsJITTrackingEnabled en false. Sin embargo, dado que el seguimiento JIT siempre está habilitado, el valor de la propiedad se omite en la versión 2.0 o posterior.

Tenga en cuenta que, a diferencia de la DisableOptimizations marca, no se puede usar la None marca para deshabilitar las optimizaciones JIT.

Default 1

Indica al compilador Just-In-Time (JIT) que use su comportamiento predeterminado, lo que incluye habilitar optimizaciones, deshabilitar la compatibilidad con Editar y continuar y usar puntos de secuencia de almacén de símbolos si están presentes. A partir de la versión 2.0 de .NET Framework, la información de seguimiento JIT, el desplazamiento del lenguaje intermedio (MSIL) Microsoft al desplazamiento de código nativo dentro de un método, siempre se genera.

IgnoreSymbolStoreSequencePoints 2

Use los puntos de secuencia de MSIL implícitos, no los puntos de secuencia de la base de datos de programa (PDB). La información simbólica normalmente incluye al menos un desplazamiento de Microsoft lenguaje intermedio (MSIL) para cada línea de origen. 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 desplazamientos MSIL que se deben conservar. Estos desplazamientos MSIL se denominan puntos de secuencia.

EnableEditAndContinue 4

Habilite editar y continuar. Editar y continuar le 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.

DisableOptimizations 256

Deshabilite las optimizaciones realizadas por el compilador para que el archivo de salida sea más pequeño, más rápido y eficaz. Las optimizaciones provocan la reorganización del código en el archivo de salida, lo que puede dificultar la depuración. Normalmente, la optimización debe deshabilitarse durante la depuración. En las versiones 2.0 o posteriores, combine este valor con Default (Default | DisableOptimizations) para habilitar el seguimiento JIT y deshabilitar las optimizaciones.

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 la versión 1.1 de .NET Framework, 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 siguiente efecto.

Modo de depuración Resultado
Ninguno Seguimiento de las optimizaciones JIT habilitadas
Default Seguimiento de las optimizaciones JIT habilitadas
DisableOptimizations Seguimiento de las optimizaciones JIT habilitadas
Valor predeterminado | DisableOptimizations Seguimiento de las optimizaciones JIT deshabilitadas

Los puntos de secuencia se usan para indicar ubicaciones en el código de lenguaje intermedio (MSIL) de Microsoft 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 mediante el uso de instrucciones de MSILnop" . Estos compiladores deben establecer la IgnoreSymbolStoreSequencePoints marca para notificar a Common Language Runtime que no cargue el archivo PDB.

Note

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 los parámetros del compilador, como /debug y /optimize.

Se aplica a