DebuggableAttribute.DebuggingModes Enumeration

DebuggableAttribute::DebuggingModes Enumeration

[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]

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)

No code example is currently available or this language may not be supported.

Member nameDescription
DefaultUse 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 Windows Phone, 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.
DisableOptimizationsDisable 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.
EnableEditAndContinueEnable 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.
IgnoreSymbolStoreSequencePointsUse 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.
NoneIn Windows Phone, just-in-time (JIT) tracking information is always generated. This flag has the same effect as Default.

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.

NoteNote:

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.

Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

Show:
© 2017 Microsoft