[mono/mono] 7e01f047: Emit better debugger attribute for stepping over state machine initialization

"Marek Safar ([email protected])" <[email protected]>
Newsgroups gmane.comp.gnome.mono.patches
Message-ID <000001417b189973-cb0133fb-b364-4fd1-8779-2781263f33f9-000000@email.amazonses.com>
   Branch: refs/heads/master
     Home: https://github.com/mono/mono
  Compare: https://github.com/mono/mono/compare/7885214216f3...7e01f047fa03

   Commit: 7e01f047fa03d2860abedf18a3bdcb03aebb8cfb
   Author: Marek Safar <[email protected]> (marek-safar)
     Date: 2013-10-02 21:29:59 GMT
      URL: https://github.com/mono/mono/commit/7e01f047fa03d2860abedf18a3bdcb03aebb8cfb

Emit better debugger attribute for stepping over state machine initialization

Changed paths:
  M mcs/mcs/attribute.cs
  M mcs/mcs/method.cs
  M mcs/mcs/modifiers.cs

Modified: mcs/mcs/attribute.cs
===================================================================
@@ -1650,6 +1650,7 @@ public class PredefinedAttributes
 		public readonly PredefinedAttribute UnsafeValueType;
 		public readonly PredefinedAttribute UnmanagedFunctionPointer;
 		public readonly PredefinedDebuggerBrowsableAttribute DebuggerBrowsable;
+		public readonly PredefinedAttribute DebuggerStepThrough;
 
 		// New in .NET 3.5
 		public readonly PredefinedAttribute Extension;
@@ -1716,6 +1717,7 @@ public PredefinedAttributes (ModuleContainer module)
 			UnsafeValueType = new PredefinedAttribute (module, "System.Runtime.CompilerServices", "UnsafeValueTypeAttribute");
 			UnmanagedFunctionPointer = new PredefinedAttribute (module, "System.Runtime.InteropServices", "UnmanagedFunctionPointerAttribute");
 			DebuggerBrowsable = new PredefinedDebuggerBrowsableAttribute (module, "System.Diagnostics", "DebuggerBrowsableAttribute");
+			DebuggerStepThrough = new PredefinedAttribute (module, "System.Diagnostics", "DebuggerStepThroughAttribute");
 
 			Extension = new PredefinedAttribute (module, "System.Runtime.CompilerServices", "ExtensionAttribute");
 

Modified: mcs/mcs/method.cs
===================================================================
@@ -685,6 +685,8 @@ public override void Emit ()
 				Module.PredefinedAttributes.CompilerGenerated.EmitAttribute (MethodBuilder);
 			if ((ModFlags & Modifiers.DEBUGGER_HIDDEN) != 0)
 				Module.PredefinedAttributes.DebuggerHidden.EmitAttribute (MethodBuilder);
+			if ((ModFlags & Modifiers.DEBUGGER_STEP_THROUGH) != 0)
+				Module.PredefinedAttributes.DebuggerStepThrough.EmitAttribute (MethodBuilder);
 
 			if (ReturnType.BuiltinType == BuiltinTypeSpec.Type.Dynamic) {
 				return_attributes = new ReturnParameter (this, MethodBuilder, Location);
@@ -1232,7 +1234,7 @@ public override bool Define ()
 					}
 
 					block = (ToplevelBlock) block.ConvertToAsyncTask (this, Parent.PartialContainer, parameters, ReturnType, null, Location);
-					ModFlags |= Modifiers.DEBUGGER_HIDDEN;
+					ModFlags |= Modifiers.DEBUGGER_STEP_THROUGH;
 				}
 
 				if (Compiler.Settings.WriteMetadataOnly)

Modified: mcs/mcs/modifiers.cs
===================================================================
@@ -51,6 +51,7 @@ public enum Modifiers
 		COMPILER_GENERATED		= 0x100000,
 		BACKING_FIELD			= 0x200000,
 		DEBUGGER_HIDDEN			= 0x400000,
+		DEBUGGER_STEP_THROUGH	= 0x800000,
 
 		AccessibilityMask = PUBLIC | PROTECTED | INTERNAL | PRIVATE,
 		AllowedExplicitImplFlags = UNSAFE | EXTERN,


_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.