Imported Upstream version 6.6.0.97

Former-commit-id: 36b6262d38adef7275aee46c9258ae34f9e3fb39
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2019-09-25 09:31:28 +00:00
parent 95fdb59ea6
commit 15bdb7a527
66 changed files with 244 additions and 355 deletions

View File

@@ -307,8 +307,15 @@ namespace Mono.Debugger.Soft
public bool Subclasses {
get; set;
}
public bool NotFilteredFeature {
get; set;
}
public bool EverythingElse {
get; set;
}
}
class AssemblyModifier : Modifier {
public long[] Assemblies {
get; set;
@@ -429,7 +436,7 @@ namespace Mono.Debugger.Soft
* with newer runtimes, and vice versa.
*/
internal const int MAJOR_VERSION = 2;
internal const int MINOR_VERSION = 53;
internal const int MINOR_VERSION = 54;
enum WPSuspendPolicy {
NONE = 0,
@@ -2632,6 +2639,10 @@ namespace Mono.Debugger.Soft
} else if (!em.Subclasses) {
throw new NotSupportedException ("This request is not supported by the protocol version implemented by the debuggee.");
}
if (Version.MajorVersion > 2 || Version.MinorVersion >= 54) {
w.WriteBool (em.NotFilteredFeature);
w.WriteBool (em.EverythingElse);
}
} else if (mod is AssemblyModifier) {
w.WriteByte ((byte)ModifierKind.ASSEMBLY_ONLY);
var amod = (mod as AssemblyModifier);

View File

@@ -6,9 +6,9 @@ namespace Mono.Debugger.Soft
public sealed class ExceptionEventRequest : EventRequest {
TypeMirror exc_type;
bool caught, uncaught, subclasses;
bool caught, uncaught, subclasses, not_filtered_feature, everything_else;
internal ExceptionEventRequest (VirtualMachine vm, TypeMirror exc_type, bool caught, bool uncaught) : base (vm, EventType.Exception) {
internal ExceptionEventRequest (VirtualMachine vm, TypeMirror exc_type, bool caught, bool uncaught, bool not_filtered_feature = false, bool everything_else = false) : base (vm, EventType.Exception) {
if (exc_type != null) {
CheckMirror (vm, exc_type);
TypeMirror exception_type = vm.RootDomain.Corlib.GetType ("System.Exception", false, false);
@@ -19,6 +19,8 @@ namespace Mono.Debugger.Soft
this.caught = caught;
this.uncaught = uncaught;
this.subclasses = true;
this.not_filtered_feature = not_filtered_feature;
this.everything_else = everything_else;
}
public TypeMirror ExceptionType {
@@ -41,7 +43,7 @@ namespace Mono.Debugger.Soft
public override void Enable () {
var mods = new List <Modifier> ();
mods.Add (new ExceptionModifier () { Type = exc_type != null ? exc_type.Id : 0, Caught = caught, Uncaught = uncaught, Subclasses = subclasses });
mods.Add (new ExceptionModifier () { Type = exc_type != null ? exc_type.Id : 0, Caught = caught, Uncaught = uncaught, Subclasses = subclasses, NotFilteredFeature = not_filtered_feature, EverythingElse = everything_else });
SendReq (mods);
}
}

View File

@@ -277,6 +277,13 @@ namespace Mono.Debugger.Soft
return new ExceptionEventRequest (this, exc_type, caught, uncaught);
}
public ExceptionEventRequest CreateExceptionRequest (TypeMirror exc_type, bool caught, bool uncaught, bool everything_else) {
if (Version.AtLeast (2, 54))
return new ExceptionEventRequest (this, exc_type, caught, uncaught, true, everything_else);
else
return new ExceptionEventRequest (this, exc_type, caught, uncaught);
}
public AssemblyLoadEventRequest CreateAssemblyLoadRequest () {
return new AssemblyLoadEventRequest (this);
}

View File

@@ -584,6 +584,7 @@ public class Tests : TestsBase, ITest2
inspect_enumerator_in_generic_struct();
if_property_stepping();
fixed_size_array();
test_new_exception_filter();
return 3;
}
@@ -595,6 +596,11 @@ public class Tests : TestsBase, ITest2
}
}
public class MyException : Exception {
public MyException(string message) : base(message) {
}
}
public static void if_property_stepping() {
var test = new TestClass();
if (test.OneLineProperty == "someInvalidValue6049e709-7271-41a1-bc0a-f1f1b80d4125")
@@ -827,6 +833,57 @@ public class Tests : TestsBase, ITest2
n.Buffer2 = new char4('a', 'b', 'c', 'd');
}
[MethodImplAttribute (MethodImplOptions.NoInlining)]
public static void test_new_exception_filter () {
test_new_exception_filter1();
test_new_exception_filter2();
test_new_exception_filter3();
test_new_exception_filter4();
}
public static void test_new_exception_filter1 () {
try {
throw new Exception("excp");
}
catch (Exception e) {
}
}
public static void test_new_exception_filter2 () {
try {
throw new MyException("excp");
}
catch (Exception e) {
}
}
public static void test_new_exception_filter3 () {
try {
throw new ArgumentException();
}
catch (Exception e) {
}
try {
throw new Exception("excp");
}
catch (Exception e) {
}
}
public static void test_new_exception_filter4 () {
try {
throw new ArgumentException();
}
catch (Exception e) {
}
try {
throw new Exception("excp");
}
catch (Exception e) {
}
}
[MethodImplAttribute (MethodImplOptions.NoInlining)]
public static void inspect_enumerator_in_generic_struct() {
TestEnumeratorInsideGenericStruct<String, String> generic_struct = new TestEnumeratorInsideGenericStruct<String, String>(new KeyValuePair<string, string>("0", "f1"));

View File

@@ -1 +1 @@
75967555e6b2fb9903c055d496b749f56798e897
ec003a04c422d9f2b5c359cfde61cd3a6b2f4b9a