Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]
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)
Syntax
'Declaration
<FlagsAttribute> _
Public Enumeration DebuggingModes
[FlagsAttribute]
public enum DebuggingModes
[FlagsAttribute]
public enum class DebuggingModes
[<FlagsAttribute>]
type DebuggingModes
public enum DebuggingModes
Members
Member name | Description | |
---|---|---|
None | A value specifying that the debugging mode is not specified. | |
Default | Instructs 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. | |
DisableOptimizations | Disable 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. | |
IgnoreSymbolStoreSequencePoints | Use 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. | |
EnableEditAndContinue | Enable 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. |
Remarks
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.
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.
Note
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.