You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: source/nanoFramework.CoreLibrary/System/Diagnostics/DebuggerAttributes.cs
+41-7Lines changed: 41 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -9,39 +9,65 @@ namespace System.Diagnostics
9
9
usingSystem;
10
10
11
11
/// <summary>
12
-
/// Instructs the debugger to step through the code instead of stepping into the code. This class cannot be inherited.
12
+
/// Identifies a type or member that is not part of the user code for an application.
13
13
/// </summary>
14
+
/// <remarks>
15
+
/// Designer provided types and members that are not part of the code specifically created by the user can complicate the debugging experience. This attribute suppresses the display of these adjunct types and members in the debugger window and automatically steps through, rather than into, designer provided code. When the debugger encounters this attribute when stepping through user code, the user experience is to not see the designer provided code and to step to the next user-supplied code statement.
16
+
/// The debugger behaviour when the <see cref="DebuggerNonUserCodeAttribute"/> is present is similar to using a combination of the <see cref="DebuggerHiddenAttribute"/> attribute, which hides the code from the debugger, and the <see cref="DebuggerStepThroughAttribute"/> attribute, which tells the debugger to step through, rather than into, the code it is applied to.
/// Initializes a new instance of the <see cref="DebuggerNonUserCodeAttribute"/> class.
23
+
/// </summary>
24
+
publicDebuggerStepThroughAttribute(){}
18
25
}
19
26
20
27
/// <summary>
21
28
/// Indicates the code following the attribute is to be executed in run, not step, mode.
22
29
/// </summary>
30
+
/// <remarks>
31
+
/// The <see cref="DebuggerStepperBoundaryAttribute"/> attribute is used as an escape from the effect of a <see cref="DebuggerNonUserCodeAttribute"/>. When executing within the boundaries of the <see cref="DebuggerNonUserCodeAttribute"/>, designer-provided code is executed as a step-through until the next user supplied code is encountered. When context switches are made on a thread, the next user-supplied code module stepped into may not relate to the code that was in the process of being debugged. To avoid this debugging experience, use the <see cref="DebuggerStepperBoundaryAttribute"/> to escape from stepping through code to running code. For example, in Visual Studio 2005, encountering a <see cref="DebuggerStepperBoundaryAttribute"/> while stepping through code using the F10 key (or Step Over command) has the same effect as pressing the F5 key or using the Start Debugging command.
/// Initializes a new instance of the <see cref="DebuggerStepperBoundaryAttribute"/> class.
38
+
/// </summary>
39
+
publicDebuggerStepperBoundaryAttribute(){}
27
40
}
28
41
29
42
/// <summary>
30
43
/// Specifies the DebuggerHiddenAttribute. This class cannot be inherited.
31
44
/// </summary>
45
+
/// <remarks>
46
+
/// The common language runtime attaches no semantics to this attribute. It is provided for use by source code debuggers. For example, the Visual Studio 2005 debugger does not stop in a method marked with this attribute and does not allow a breakpoint to be set in the method. Other debugger attributes recognized by the Visual Studio 2005 debugger are the <see cref="DebuggerNonUserCodeAttribute"/> and the <see cref="DebuggerStepThroughAttribute"/>.
/// Initializes a new instance of the <see cref="DebuggerHiddenAttribute"/> class.
53
+
/// </summary>
54
+
publicDebuggerHiddenAttribute(){}
36
55
}
37
56
38
57
/// <summary>
39
58
/// Identifies a type or member that is not part of the user code for an application.
40
59
/// </summary>
60
+
/// <remarks>
61
+
/// Designer provided types and members that are not part of the code specifically created by the user can complicate the debugging experience. This attribute suppresses the display of these adjunct types and members in the debugger window and automatically steps through, rather than into, designer provided code. When the debugger encounters this attribute when stepping through user code, the user experience is to not see the designer provided code and to step to the next user-supplied code statement.
62
+
/// The debugger behaviour when the <see cref="DebuggerNonUserCodeAttribute"/> is present is similar to using a combination of the <see cref="DebuggerHiddenAttribute"/> attribute, which hides the code from the debugger, and the <see cref="DebuggerStepThroughAttribute"/> attribute, which tells the debugger to step through, rather than into, the code it is applied to.
/// Initializes a new instance of the <see cref="DebuggerNonUserCodeAttribute"/> class.
69
+
/// </summary>
70
+
publicDebuggerNonUserCodeAttribute(){}
45
71
}
46
72
47
73
// Attribute class used by the compiler to mark modules.
@@ -71,24 +97,28 @@ public enum DebuggingModes
71
97
/// Note that, unlike the None flag, the None flag cannot be used to disable JIT optimizations.
72
98
/// </summary>
73
99
None=0x0,
100
+
74
101
/// <summary>
75
-
/// Instructs the just-in-time (JIT) compiler to use its default behavior, which includes enabling optimizations, disabling Edit and Continue support,
102
+
/// Instructs the just-in-time (JIT) compiler to use its default behaviour, which includes enabling optimizations, disabling Edit and Continue support,
76
103
/// and using symbol store sequence points if present. Starting with the .NET Framework version 2.0, JIT tracking information, the Microsoft intermediate
77
104
/// language (MSIL) offset to the native-code offset within a method, is always generated.
78
105
/// </summary>
79
106
Default=0x1,
107
+
80
108
/// <summary>
81
109
/// Disable optimizations performed by the compiler to make your output file smaller, faster, and more efficient. Optimizations result in code rearrangement
82
110
/// in the output file, which can make debugging difficult. Typically optimization should be disabled while debugging. In versions 2.0 or later, combine this
83
111
/// value with Default (Default | DisableOptimizations) to enable JIT tracking and disable optimizations.
84
112
/// </summary>
85
113
DisableOptimizations=0x100,
114
+
86
115
/// <summary>
87
116
/// Use the implicit MSIL sequence points, not the program database (PDB) sequence points. The symbolic information normally includes at least one
88
117
/// Microsoft intermediate language (MSIL) offset for each source line. When the just-in-time (JIT) compiler is about to compile a method, it asks
89
118
/// the profiling services for a list of MSIL offsets that should be preserved. These MSIL offsets are called sequence points.
90
119
/// </summary>
91
120
IgnoreSymbolStoreSequencePoints=0x2,
121
+
92
122
/// <summary>
93
123
/// 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.
94
124
/// </summary>
@@ -173,6 +203,7 @@ public enum DebuggerBrowsableState
0 commit comments