Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

DebuggerException: Evaluation can not be stopped thrown when trying to evaluate StringBuilder.ToString() #579

Open
@siegfriedpammer

Description

@siegfriedpammer

The following exception is thrown:

Exception thrown:
Debugger.DebuggerException: Evaluation can not be stopped
   at Debugger.Eval.WaitForResult() in e:\Projects\SharpDevelop\SharpDevelop master\src\AddIns\Debugger\Debugger.Core\Eval.cs:line 172
   at Debugger.Eval.InvokeMethod(Thread evalThread, IMethod method, Value thisValue, Value[] args) in e:\Projects\SharpDevelop\SharpDevelop master\src\AddIns\Debugger\Debugger.Core\Eval.cs:line 214
   at Debugger.Value.InvokeToString(Thread evalThread, Int32 maxLength) in e:\Projects\SharpDevelop\SharpDevelop master\src\AddIns\Debugger\Debugger.Core\Value.cs:line 723
   at Debugger.AddIn.TreeModel.ValueNode.GetValueAndUpdateUI() in e:\Projects\SharpDevelop\SharpDevelop master\src\AddIns\Debugger\Debugger.AddIn\TreeModel\ValueNode.cs:line 184
   at Debugger.AddIn.TreeModel.ValueNode..ctor(IImage image, String name, Func`1 getValue, Action`1 setValue) in e:\Projects\SharpDevelop\SharpDevelop master\src\AddIns\Debugger\Debugger.AddIn\TreeModel\ValueNode.cs:line 78
   at ICSharpCode.SharpDevelop.Services.WindowsDebugger.HandleToolTipRequest(ToolTipRequestEventArgs e) in e:\Projects\SharpDevelop\SharpDevelop master\src\AddIns\Debugger\Debugger.AddIn\Service\WindowsDebugger.cs:line 647
   at ICSharpCode.SharpDevelop.Debugging.DebuggerTextAreaToolTipProvider.HandleToolTipRequest(ToolTipRequestEventArgs e) in e:\Projects\SharpDevelop\SharpDevelop master\src\Main\Base\Project\Debugging\IDebuggerService.cs:line 190
   at ICSharpCode.SharpDevelop.Editor.ToolTipRequestService.RequestToolTip(ToolTipRequestEventArgs e) in e:\Projects\SharpDevelop\SharpDevelop master\src\Main\Base\Project\Editor\ToolTipService.cs:line 59
   at ICSharpCode.AvalonEdit.AddIn.CodeEditorView.TextEditorMouseHover(Object sender, MouseEventArgs e) in e:\Projects\SharpDevelop\SharpDevelop master\src\AddIns\DisplayBindings\AvalonEdit.AddIn\Src\CodeEditorView.cs:line 282
   at System.Windows.Input.MouseEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at ICSharpCode.AvalonEdit.Rendering.TextView.RaiseHoverEventPair(MouseEventArgs e, RoutedEvent tunnelingEvent, RoutedEvent bubblingEvent) in e:\Projects\SharpDevelop\SharpDevelop master\src\Libraries\AvalonEdit\ICSharpCode.AvalonEdit\Rendering\TextView.cs:line 1929
   at ICSharpCode.AvalonEdit.Rendering.TextView.<.ctor>b__0(Object sender, MouseEventArgs e) in e:\Projects\SharpDevelop\SharpDevelop master\src\Libraries\AvalonEdit\ICSharpCode.AvalonEdit\Rendering\TextView.cs:line 81
   at ICSharpCode.AvalonEdit.Rendering.MouseHoverLogic.OnMouseHover(MouseEventArgs e) in e:\Projects\SharpDevelop\SharpDevelop master\src\Libraries\AvalonEdit\ICSharpCode.AvalonEdit\Rendering\MouseHoverLogic.cs:line 115
   at ICSharpCode.AvalonEdit.Rendering.MouseHoverLogic.OnMouseHoverTimerElapsed(Object sender, EventArgs e) in e:\Projects\SharpDevelop\SharpDevelop master\src\Libraries\AvalonEdit\ICSharpCode.AvalonEdit\Rendering\MouseHoverLogic.cs:line 101
   at System.Windows.Threading.DispatcherTimer.FireTick(Object unused)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

---- Recent log messages:
16:11:26.069 [1] DEBUG - ChooseLayoutCommand.Run()
16:11:26.070 [1] INFO - Saving layout file: C:\Users\Siegfried\AppData\Roaming\ICSharpCode\SharpDevelop5\layouts\Debug.xml
16:11:26.087 [1] DEBUG - Service startup: ICSharpCode.SharpDevelop.Dom.ClassBrowser.IClassBrowser
16:11:27.357 [1] INFO - Open file e:\Documents\SharpDevelop Projects\BugTest\Test2\Program.cs
16:11:27.938 [8] DEBUG - Resolved (Line 26, Col 4) to [TypeResolveResult System.String]
16:11:29.261 [1] DEBUG - Resolved (Line 26, Col 20) to [LocalResolveResult System.Text.StringBuilder builder;]
16:11:29.957 [1] INFO - Evaluated node 'builder' in 685 ms
16:11:30.994 [1] DEBUG - [AddInManager2.Events] Package list download ended (success: False).
16:11:30.998 [1] DEBUG - [AddInManager2.Events] Package list download ended (success: True).
16:11:31.721 [1] DEBUG - Resolved (Line 21, Col 9) to [LocalResolveResult System.Text.StringBuilder builder;]
16:11:35.778 [7] DEBUG - Telling worker process to exit
16:11:35.779 [7] DEBUG - Waiting for thread-join
16:11:35.780 [15] DEBUG - Cannot read from WorkerProcess 9364: end of stream
16:11:35.781 [15] DEBUG - Stopped reading from WorkerProcess 9364.
16:11:35.783 [15] DEBUG - Telling worker process to exit
16:11:35.784 [15] DEBUG - End of reader thread on WorkerProcess 9364.
16:11:35.786 [7] DEBUG - Joined!
16:11:35.903 [5] DEBUG - Telling worker process to exit
16:11:35.903 [5] DEBUG - Waiting for thread-join
16:11:35.904 [16] DEBUG - Cannot read from WorkerProcess 10696: end of stream
16:11:35.905 [16] DEBUG - Stopped reading from WorkerProcess 10696.
16:11:35.907 [16] DEBUG - Telling worker process to exit
16:11:35.909 [16] DEBUG - End of reader thread on WorkerProcess 10696.
16:11:35.911 [5] DEBUG - Joined!
16:11:40.790 [1] ERROR - Unhandled WPF exception
--> Exception:
Debugger.DebuggerException: Evaluation can not be stopped
   at Debugger.Eval.WaitForResult() in e:\Projects\SharpDevelop\SharpDevelop master\src\AddIns\Debugger\Debugger.Core\Eval.cs:line 172
   at Debugger.Eval.InvokeMethod(Thread evalThread, IMethod method, Value thisValue, Value[] args) in e:\Projects\SharpDevelop\SharpDevelop master\src\AddIns\Debugger\Debugger.Core\Eval.cs:line 214
   at Debugger.Value.InvokeToString(Thread evalThread, Int32 maxLength) in e:\Projects\SharpDevelop\SharpDevelop master\src\AddIns\Debugger\Debugger.Core\Value.cs:line 723
   at Debugger.AddIn.TreeModel.ValueNode.GetValueAndUpdateUI() in e:\Projects\SharpDevelop\SharpDevelop master\src\AddIns\Debugger\Debugger.AddIn\TreeModel\ValueNode.cs:line 184
   at Debugger.AddIn.TreeModel.ValueNode..ctor(IImage image, String name, Func`1 getValue, Action`1 setValue) in e:\Projects\SharpDevelop\SharpDevelop master\src\AddIns\Debugger\Debugger.AddIn\TreeModel\ValueNode.cs:line 78
   at ICSharpCode.SharpDevelop.Services.WindowsDebugger.HandleToolTipRequest(ToolTipRequestEventArgs e) in e:\Projects\SharpDevelop\SharpDevelop master\src\AddIns\Debugger\Debugger.AddIn\Service\WindowsDebugger.cs:line 647
   at ICSharpCode.SharpDevelop.Debugging.DebuggerTextAreaToolTipProvider.HandleToolTipRequest(ToolTipRequestEventArgs e) in e:\Projects\SharpDevelop\SharpDevelop master\src\Main\Base\Project\Debugging\IDebuggerService.cs:line 190
   at ICSharpCode.SharpDevelop.Editor.ToolTipRequestService.RequestToolTip(ToolTipRequestEventArgs e) in e:\Projects\SharpDevelop\SharpDevelop master\src\Main\Base\Project\Editor\ToolTipService.cs:line 59
   at ICSharpCode.AvalonEdit.AddIn.CodeEditorView.TextEditorMouseHover(Object sender, MouseEventArgs e) in e:\Projects\SharpDevelop\SharpDevelop master\src\AddIns\DisplayBindings\AvalonEdit.AddIn\Src\CodeEditorView.cs:line 282

Steps:

  1. Use the following program to reproduce:
using System;
using System.Text;

namespace Test2
{
    class Program
    {
        const string TEST = "THIS IS A LONG TEST STRING";

        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            var builder = new StringBuilder();

            for (int i = 0; i < int.MaxValue / 685; i++)
                builder.Append(TEST);

            string test = builder.ToString(); // breakpoint here!

            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
}
  1. Place a breakpoint on the marked line
  2. Run the program. Wait for the debugger to break.
  3. Hover over builder at the breakpoint. It should evaluate.
  4. Without continuing execution, hover over builder at another location.
  5. The aforementioned exception should be thrown.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions