Exception in Boo code causes COMException in debugger #203
Description
SD-1823, originally created on 4/6/2011 00:09:16 by Daniel Grunwald
From http://community.sharpdevelop.net/forums/t/12544.aspx:
- Create a new Boo console application (.NET 4.0)
- Paste the following code after print "Hello, World":
numbers = [17, 123]
print numbers[-3]
- Run the program
Expected result: IndexOutOfRangeException visible in debugger
Actual result:
SharpDevelop Version : 4.0.1.7129-441d6443
.NET Version : 4.0.30319.1
OS Version : Microsoft Windows NT 6.1.7601 Service Pack 1
Current culture : English (United States) (en-US)
Running under WOW6432, processor architecture: AMD64
Working Set Memory : 136620kb
GC Heap Memory : 32572kb
Exception thrown:
System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT
E_FAIL has been returned from a call to a COM component.
at
Debugger.Interop.CorDebug.ICorDebugThread.__EnumerateChains(ICorDebugChainEnum&
ppChains)
at Debugger.Thread.get_IsInValidState()
at Debugger.Process.CheckSelectedStackFrames()
at Debugger.ManagedCallback.Pause()
at Debugger.ManagedCallback.ExitCallback()
at
Debugger.ManagedCallbackProxy.<>c__DisplayClass5b.b__5a()
at Debugger.MTA2STA.<>c__DisplayClass4.b__1()
at Debugger.MTA2STA.PerformCall()
at Debugger.Process.WaitForPause()
at Debugger.Thread.InterceptCurrentException()
at
ICSharpCode.SharpDevelop.Services.WindowsDebugger.debuggedProcess_ExceptionThrown(Object
sender, ExceptionEventArgs e)
at Debugger.Process.OnExceptionThrown(ExceptionEventArgs e)
at Debugger.Process.RaisePausedEvents()
at Debugger.MTA2STA.<>c__DisplayClass4.b__1()
at Debugger.MTA2STA.PerformCall()
at Debugger.MTA2STA.PerformAllCalls()
at
System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry
tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object
obj)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at
System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode
code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext
executionContext, ContextCallback callback, Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state, Boolean
ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state)
at
System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry
tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbacks()