I'm testing a Boo program (which is multithreaded) by using NUnit as the debugger (I also use the builtin NUnit test runner, but I sometimes do it the other way since I can set breakpoints while debugging). I'm using NUnit 2.2.9.
The exception I receive is below. SharpDevelop continues to run okay after the error, but NUnit locks up.
The exception actually occurs quite frequently, even when running simple tests with no threading. It doesn't seem to happen on the first test, but does often on the second or third. Using the internal Unit Tests pane, the tests complete fine, and the application runs without trouble too.
SharpDevelop Version : 2.1.0.2201
.NET Version : 2.0.50727.42
OS Version : Microsoft Windows NT 5.1.2600 Service Pack 2
Current culture : English (Australia) (en-AU)
Current UI language : en-US
Working Set Memory : 90804kb
GC Heap Memory : 36969kb
Exception thrown:
Debugger.DebuggerException: Stepper is not in collection
at Debugger.Thread.GetStepper(ICorDebugStepper corStepper)
at Debugger.ManagedCallback.StepComplete(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, ICorDebugStepper pStepper, CorDebugStepReason reason)
at Debugger.ManagedCallbackProxy.<>c__DisplayClass1.<StepComplete>b__0()
at Debugger.MTA2STA.<>c__DisplayClass3.<EnqueueCall>b__0()
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)
at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbacks()