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.
Assembly: mscorlib (in mscorlib.dll)
|In the .NET Framework for Silverlight, just-in-time (JIT) tracking information is always generated. This flag has the same effect as .|
|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.|
|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.|
|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.|
|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.|
The 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 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 flag to prevent the common language runtime from loading the PDB file.
The enumeration is primarily used by language developers. Generally, it is not used in application development. Development environments use based on compiler parameters such as /debug and /optimize.
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.