From 61c64ac3e78884e68b5ce8e5205c7ff726b4514b Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sun, 21 Sep 2008 20:58:13 +0000 Subject: [PATCH] fixed conditional breakpoints and ==-operator evaluation. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@3551 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Src/Expressions/EvaluateAstVisitor.cs | 24 +++++++++++-------- .../Project/Src/Service/WindowsDebugger.cs | 3 ++- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Expressions/EvaluateAstVisitor.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Expressions/EvaluateAstVisitor.cs index ea1d7127d9..065ffacfb9 100644 --- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Expressions/EvaluateAstVisitor.cs +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Expressions/EvaluateAstVisitor.cs @@ -154,14 +154,15 @@ namespace Debugger.AddIn Value val = Eval.NewObjectNoConstructor(DebugType.Create(context.Process, null, typeof(bool).FullName)); - switch (binaryOperatorExpression.Op) - { - case BinaryOperatorType.Equality : - val.PrimitiveValue = (right.PrimitiveValue == left.PrimitiveValue); - break; - case BinaryOperatorType.InEquality : - val.PrimitiveValue = (right.PrimitiveValue != left.PrimitiveValue); - break; + try { + switch (binaryOperatorExpression.Op) + { + case BinaryOperatorType.Equality : + val.PrimitiveValue = object.Equals(right.PrimitiveValue, left.PrimitiveValue); + break; + case BinaryOperatorType.InEquality : + val.PrimitiveValue = !object.Equals(right.PrimitiveValue, left.PrimitiveValue); + break; // case BinaryOperatorType.Add : // val.PrimitiveValue = (right.PrimitiveValue.ToString() + left.PrimitiveValue.ToString()); // break; @@ -174,8 +175,11 @@ namespace Debugger.AddIn // case BinaryOperatorType.GreaterThanOrEqual : // val.PrimitiveValue = (right.PrimitiveValue >= left.PrimitiveValue); // break; - default : - throw new NotImplementedException("BinaryOperator: " + binaryOperatorExpression.Op + "!"); + default : + throw new NotImplementedException("BinaryOperator: " + binaryOperatorExpression.Op + "!"); + } + } catch (System.Exception e) { + throw new GetValueException(e.Message); } return val; diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/WindowsDebugger.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/WindowsDebugger.cs index 68c467cb1d..1ad6159f40 100644 --- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/WindowsDebugger.cs +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/WindowsDebugger.cs @@ -594,7 +594,8 @@ namespace ICSharpCode.SharpDevelop.Services else return false; } catch (GetValueException e) { - throw e; + WorkbenchSingleton.SafeThreadAsyncCall(MessageService.ShowError, e); + return true; } }