Browse Source

Eval.CreateValue sets Value.ExpressionTree more correctly so that Expression.PrettyPrint does not result in stack overflow anymore.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@4721 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Martin Koníček 16 years ago
parent
commit
7ac6e8b962
  1. 3
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/ObjectGraphPad.cs
  2. 3
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/WindowsDebugger.cs
  3. 2
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ObjectGraphControl.xaml.cs
  4. 2
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Control/Eval.cs
  5. 4
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Control/Process-StateControl.cs
  6. 3
      src/Main/Base/Project/Src/Services/Debugger/Tooltips/VisualizerPicker.cs

3
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/ObjectGraphPad.cs

@ -47,10 +47,9 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -47,10 +47,9 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
public override void RefreshPad()
{
// BUG: if pad window is undocked and floats standalone, IsVisible == false (so pad won't refresh)
// REQUEST: need to refresh pad
// REQUEST: need to refresh when pad becomes visible -> VisibleChanged event?
if (!this.IsVisible)
{
LoggingService.Info("skipped refresh");
return;
}
if (debuggedProcess == null || debuggedProcess.IsRunning || debuggedProcess.SelectedStackFrame == null) {

3
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/WindowsDebugger.cs

@ -384,8 +384,7 @@ namespace ICSharpCode.SharpDevelop.Services @@ -384,8 +384,7 @@ namespace ICSharpCode.SharpDevelop.Services
try {
Value val = GetValueFromName(variableName);
if (val == null) return null;
//expressionNode = new ExpressionNode(ExpressionNode.GetImageForLocalVariable(), variableName, val.ExpressionTree);
expressionNode = new ExpressionNode(null, variableName, val.ExpressionTree);
expressionNode = new ExpressionNode(ExpressionNode.GetImageForLocalVariable(), variableName, val.ExpressionTree);
} catch (GetValueException) {
return null;
}

2
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ObjectGraphControl.xaml.cs

@ -117,7 +117,7 @@ namespace Debugger.AddIn.Visualizers.Graph @@ -117,7 +117,7 @@ namespace Debugger.AddIn.Visualizers.Graph
catch(Debugger.GetValueException ex)
{
graphBuiltOk = false;
showErrorMessage("Cannot evaluate: " + ex.Message);
showErrorMessage("Expression cannot be evaluated - " + ex.Message);
}
if (graphBuiltOk)
{

2
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Control/Eval.cs

@ -282,7 +282,7 @@ namespace Debugger @@ -282,7 +282,7 @@ namespace Debugger
// TODO: Check if it is primitive type
Value val = Eval.NewObjectNoConstructor(DebugType.CreateFromType(appDomain, value.GetType()));
val.PrimitiveValue = value;
val.ExpressionTree = new PrimitiveExpression(val);
val.ExpressionTree = new PrimitiveExpression(value);
return val;
}
}

4
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Control/Process-StateControl.cs

@ -32,11 +32,11 @@ namespace Debugger @@ -32,11 +32,11 @@ namespace Debugger
if (Paused != null) {
foreach(Delegate d in Paused.GetInvocationList()) {
if (IsRunning) {
TraceMessage ("Skipping OnPaused delegate becuase process has resumed");
TraceMessage ("Skipping OnPaused delegate because process has resumed");
break;
}
if (this.TerminateCommandIssued || this.HasExited) {
TraceMessage ("Skipping OnPaused delegate becuase process has exited");
TraceMessage ("Skipping OnPaused delegate because process has exited");
break;
}
d.DynamicInvoke(this, new ProcessEventArgs(this));

3
src/Main/Base/Project/Src/Services/Debugger/Tooltips/VisualizerPicker.cs

@ -35,6 +35,9 @@ namespace ICSharpCode.SharpDevelop.Debugging @@ -35,6 +35,9 @@ namespace ICSharpCode.SharpDevelop.Debugging
}
clickedCommand.Execute();
// make no item selected, so that multiple selections of the same item always execute the command
// this triggers VisualizerPicker_SelectionChanged again, which returns immediately
this.SelectedIndex = -1;
}
public new IEnumerable<IVisualizerCommand> ItemsSource

Loading…
Cancel
Save