Browse Source

Fixed SD2-1109: Stack OverFlow exception in code makes the debugger throw an unhundled exception.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1836 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
David Srbecký 19 years ago
parent
commit
91f24720fa
  1. BIN
      data/resources/StringResources.es-mx.resources
  2. 2
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/ExceptionForm.cs
  3. 7
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/WindowsDebugger.cs
  4. 10
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Thread.cs
  5. BIN
      src/Main/StartUp/Project/Resources/StringResources.resources

BIN
data/resources/StringResources.es-mx.resources

Binary file not shown.

2
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/ExceptionForm.cs

@ -129,7 +129,7 @@ namespace ICSharpCode.SharpDevelop.Services @@ -129,7 +129,7 @@ namespace ICSharpCode.SharpDevelop.Services
this.MinimizeBox = false;
this.Name = "ExceptionForm";
this.ShowInTaskbar = false;
this.Text = "${res:MainWindow.Windows.Debug.ExceptionHistory.Exception}";
this.Text = "${res:MainWindow.Windows.Debug.ExceptionForm.Title}";
this.TopMost = true;
((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit();
this.ResumeLayout(false);

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

@ -425,8 +425,11 @@ namespace ICSharpCode.SharpDevelop.Services @@ -425,8 +425,11 @@ namespace ICSharpCode.SharpDevelop.Services
e.Continue = true;
return;
case ExceptionForm.Result.Ignore:
e.Process.SelectedThread.InterceptCurrentException();
e.Continue = true; // HACK: Start interception
if (e.Process.SelectedThread.InterceptCurrentException()) {
e.Continue = true; // HACK: Start interception
} else {
MessageService.ShowMessage("${res:MainWindow.Windows.Debug.ExceptionForm.Error.CannotInterceptException}", "${res:MainWindow.Windows.Debug.ExceptionForm.Title}");
}
break;
}
}

10
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Thread.cs

@ -133,11 +133,13 @@ namespace Debugger @@ -133,11 +133,13 @@ namespace Debugger
}
}
public void InterceptCurrentException()
public bool InterceptCurrentException()
{
if (corThread.Is<ICorDebugThread2>()) { // Is the debuggee .NET 2.0?
corThread.CastTo<ICorDebugThread2>().InterceptCurrentException(LastFunction.CorILFrame.CastTo<ICorDebugFrame>());
}
if (!corThread.Is<ICorDebugThread2>()) return false; // Is the debuggee .NET 2.0?
if (LastFunction == null) return false; // Is frame available? It is not at StackOverflow
corThread.CastTo<ICorDebugThread2>().InterceptCurrentException(LastFunction.CorILFrame.CastTo<ICorDebugFrame>());
return true;
}
internal Stepper GetStepper(ICorDebugStepper corStepper)

BIN
src/Main/StartUp/Project/Resources/StringResources.resources

Binary file not shown.
Loading…
Cancel
Save