Expand Minimize

DebuggableAttribute.DebuggingModes Enumeration

Specifies the debugging mode for the just-in-time (JIT) compiler.

This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.

Namespace:  System.Diagnostics
Assembly:  mscorlib (in mscorlib.dll)

[ComVisibleAttribute(true)]
[FlagsAttribute]
public enum DebuggingModes

Member nameDescription
Supported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsDefaultInstructs the just-in-time (JIT) compiler to use its default behavior, which includes enabling optimizations, disabling Edit and Continue support, and using symbol store sequence points if present. In the .NET Framework version 2.0, JIT tracking information, the Microsoft intermediate language (MSIL) offset to the native-code offset within a method, is always generated.
Supported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsDisableOptimizationsDisable optimizations performed by the compiler to make your output file smaller, faster, and more efficient. Optimizations result in code rearrangement in the output file, which can make debugging difficult. Typically optimization should be disabled while debugging.
Supported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsEnableEditAndContinueEnable edit and continue. Edit and continue enables you to make changes to your source code while your program is in break mode. The ability to edit and continue is compiler dependent.
Supported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsIgnoreSymbolStoreSequencePointsUse the implicit MSIL sequence points, not the program database (PDB) sequence points. The symbolic information normally includes at least one Microsoft intermediate language (MSIL) offset for each source line. When the just-in-time (JIT) compiler is about to compile a method, it asks the profiling services for a list of MSIL offsets that should be preserved. These MSIL offsets are called sequence points.
Supported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsNoneIn the .NET Framework version 2.0, JIT tracking information is always generated, and this flag has the same effect as Default with the exception of the IsJITTrackingEnabled property being false, which has no meaning in version 2.0.

The DebuggableAttribute.DebuggingModes enumeration specifies how the runtime is to track information important to the debugger during code generation. This information helps the debugger provide a rich debugging experience. In the .NET Framework version 2.0, calling the DebuggableAttribute(DebuggableAttribute.DebuggingModes) constructor with a modes parameter value of Default is equivalent to calling the DebuggableAttribute(Boolean, Boolean) constructor with an isJITTrackingEnabled parameter value of true in the .NET Framework version 1.1. Unlike version 1.1, version 2.0 does not allow you to turn off tracking by the just-in-time (JIT) compiler. JIT tracking is always enabled for debuggable files.

Sequence points are used to indicate locations in the Microsoft intermediate language (MSIL) code that a debugger user will expect to be able to refer to uniquely, such as for setting a breakpoint. The JIT compiler ensures it does not compile the MSIL at two different sequence points into a single native instruction. By default, the JIT compiler examines the symbol store in the program database (PDB) file for a list of additional sequence points. However, loading the PDB file requires that the file be available and has a negative performance impact. In version 2.0, compilers can emit "implicit sequence points" in the MSIL code stream through the use of MSIL "nop" instructions. Such compilers should set the IgnoreSymbolStoreSequencePoints flag to notify the common language runtime to not load the PDB file.

NoteNote

This enumeration is primarily used by language developers. It is generally not used in application development. Development environments use DebuggableAttribute.DebuggingModes based on compiler parameters such as /debug and /optimize.

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Store apps

Supported in: Windows 8

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft