DebuggableAttribute.DebuggingModes Enumeration
Microsoft Silverlight will reach end of support after October 2021. Learn more.
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> _
<ComVisibleAttribute(True)> _
Public Enumeration DebuggingModes
[FlagsAttribute]
[ComVisibleAttribute(true)]
public enum DebuggingModes
Members
Member name | Description | |
---|---|---|
None | In the .NET Framework for Silverlight, just-in-time (JIT) tracking information is always generated. This flag has the same effect as Default. | |
Default | Use the default behavior for the just-in-time (JIT) compiler, which includes enabling optimizations, disabling Edit and Continue support, and using symbol store sequence points if they are present. In the .NET Framework for Silverlight, JIT tracking information is always generated. This makes it possible for the debugger to match up a chain of MSIL with its machine code counterpart, and to track where local variables and function arguments are stored. | |
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 typically includes at least one 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. | |
EnableEditAndContinue | Enable Edit and Continue. This feature enables you to change 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 will track information that is important to the debugger during code generation. This information helps the debugger provide a rich debugging experience. 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.
Sequence points are used to indicate locations in the Microsoft intermediate language (MSIL) code that a debugger user will want to reference uniquely, for example, to set a breakpoint. The JIT compiler does not compile the MSIL at two 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 adversely affects performance. Compilers can emit implicit sequence points in the MSIL code stream by using MSIL nop instructions. Such compilers should set the IgnoreSymbolStoreSequencePoints flag to prevent the common language runtime from loading the PDB file.
Note: |
---|
The DebuggableAttribute.DebuggingModes enumeration is primarily used by language developers. Generally, it is not used in application development. Development environments use DebuggableAttribute.DebuggingModes based on compiler parameters such as /debug and /optimize. |
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
XNA Framework
Supported in: Xbox 360, Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.