While debugging, SharpDevelop throws an exception each time, I hover any source line with the expression
myTocData.arTrackData[bTrack]
if 'arTrackData' is null. E.g. within the line
var addr = BitConverter.GetBytes(myTocData.arTrackData[bTrack].Address);
it is possible to hover 'myTocData' and to open the member list in the tooltip by clicking the '+'. It is also possible to hover 'bTrack'. But touching 'Address' or 'arTrackData' leads to an exception, when the tooltip is going to be displayed.
The arTrackData member of myTocData is a TrackDataArray, which is a class with an indexer:
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
protected sealed class TrackDataArray
{
// ...
public TRACK_DATA this[int iIdx]
{
get
{
if((iIdx<0) || (iIdx>=CdDevice.MAXIMUM_NUMBER_TRACKS))
throw new IndexOutOfRangeException();
//...
And here's the message:
SharpDevelop Version : 3.0.0.3800
.NET Version : 2.0.50727.3053
OS Version : Microsoft Windows NT 5.1.2600 Service Pack 3
Current culture : German (Germany) (de-DE)
Current UI language : en
Working Set Memory : 138272kb
GC Heap Memory : 29466kb
Error while requesting tooltip for location (Line 111, Col 52)
Exception thrown:
System.InvalidCastException: Specified cast is not valid.
at Debugger.AddIn.EvaluateAstVisitor.VisitIndexerExpression(IndexerExpression indexerExpression, Object data)
at ICSharpCode.NRefactory.Ast.IndexerExpression.AcceptVisitor(IAstVisitor visitor, Object data)
at Debugger.AddIn.AstEvaluator.Evaluate(String code, SupportedLanguage language, StackFrame context)
at ICSharpCode.SharpDevelop.Services.WindowsDebugger.GetValueFromName(String variableName)
at ICSharpCode.SharpDevelop.Services.WindowsDebugger.GetValueAsString(String variableName)
at ICSharpCode.SharpDevelop.Debugging.DebuggerService.GetMemberText(IAmbience ambience, IEntity member, String expression, Boolean& debuggerCanShowValue)
at ICSharpCode.SharpDevelop.Debugging.DebuggerService.GetText(ResolveResult result, String expression, Boolean& debuggerCanShowValue)
at ICSharpCode.SharpDevelop.Debugging.DebuggerService.GetToolTipInfo(TextArea textArea, ToolTipRequestEventArgs e)
at ICSharpCode.SharpDevelop.Debugging.DebuggerTextAreaToolTipProvider.GetToolTipInfo(TextArea textArea, ToolTipRequestEventArgs e)
at ICSharpCode.SharpDevelop.Debugging.DebuggerService.TextAreaToolTipRequest(Object sender, ToolTipRequestEventArgs e)
---- Recent log messages:
22:22:09.765 [1] DEBUG - ActiveViewContentChanged to [TextEditorDisplayBindingWrapper D:\Projekte\SharpDevelop\HyperTest\HyperTest\CdToc.cs]
22:22:09.765 [1] DEBUG - ActiveContentChanged to [TextEditorDisplayBindingWrapper D:\Projekte\SharpDevelop\HyperTest\HyperTest\CdToc.cs]
22:22:09.765 [1] DEBUG - UpdateSelectedObjectIfActive
22:22:09.765 [1] DEBUG - NavigationService -- resume logging
22:22:09.765 [1] INFO - FileService
Jumped to File Position: [d:\Projekte\SharpDevelop\HyperTest\HyperTest\CdToc.cs : 111x3]
22:22:09.781 [1] DEBUG - Debugger: Callback: ExceptionUnwind
22:22:09.890 [1] DEBUG - Debugger: Callback: EvalComplete
22:22:10.062 [1] DEBUG - Debugger: Expression cache cleared
22:22:10.078 [1] DEBUG - Debugger: Callback: EvalComplete
22:22:10.140 [1] INFO - Repainting Local Variables Pad (0.8831 ms)
22:22:19.343 [1] DEBUG - Debugger: Debugger event: OnPaused()
22:22:19.343 [1] INFO - Jump to current line - start
22:22:19.343 [1] INFO - FileService
Jumping to File Position: [d:\Projekte\SharpDevelop\HyperTest\HyperTest\CdToc.cs : 111x3]
22:22:19.343 [1] DEBUG - NavigationService -- suspend logging
22:22:19.343 [1] INFO - Open file d:\Projekte\SharpDevelop\HyperTest\HyperTest\CdToc.cs
22:22:19.343 [1] DEBUG - NavigationService -- resume logging
22:22:19.343 [1] INFO - FileService
Jumped to File Position: [d:\Projekte\SharpDevelop\HyperTest\HyperTest\CdToc.cs : 111x3]
22:22:19.343 [1] INFO - Jump to current line - end (2.7205 ms)
22:22:19.343 [1] INFO - Callstack refresh - start
22:22:19.578 [1] INFO - Callstack refresh - end (221.8126 ms)
22:22:24.562 [1] INFO - asking debugger for value of 'myTocData'
22:22:24.562 [1] DEBUG - Debugger: Callback: EvalComplete
22:22:27.859 [1] INFO - asking debugger for value of 'myTocData.arTrackData[bTrack]'
22:22:27.875 [1] ERROR - Error while requesting tooltip for location (Line 111, Col 52)
--> Exception:
System.InvalidCastException: Specified cast is not valid.
at Debugger.AddIn.EvaluateAstVisitor.VisitIndexerExpression(IndexerExpression indexerExpression, Object data)
at ICSharpCode.NRefactory.Ast.IndexerExpression.AcceptVisitor(IAstVisitor visitor, Object data)
at Debugger.AddIn.AstEvaluator.Evaluate(String code, SupportedLanguage language, StackFrame context)
at ICSharpCode.SharpDevelop.Services.WindowsDebugger.GetValueFromName(String variableName)
at ICSharpCode.SharpDevelop.Services.WindowsDebugger.GetValueAsString(String variableName)
at ICSharpCode.SharpDevelop.Debugging.DebuggerService.GetMemberText(IAmbience ambience, IEntity member, String expression, Boolean& debuggerCanShowValue)
at ICSharpCode.SharpDevelop.Debugging.DebuggerService.GetText(ResolveResult result, String expression, Boolean& debuggerCanShowValue)
at ICSharpCode.SharpDevelop.Debugging.DebuggerService.GetToolTipInfo(TextArea textArea, ToolTipRequestEventArgs e)
at ICSharpCode.SharpDevelop.Debugging.DebuggerTextAreaToolTipProvider.GetToolTipInfo(TextArea textArea, ToolTipRequestEventArgs e)
at ICSharpCode.SharpDevelop.Debugging.DebuggerService.TextAreaToolTipRequest(Object sender, ToolTipRequestEventArgs e)
22:22:27.937 [1] WARN - Stack trace of last error log:
at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
at System.Environment.get_StackTrace()
at ICSharpCode.Core.MessageService.ShowError(Exception ex, String message)
at ICSharpCode.SharpDevelop.Debugging.DebuggerService.TextAreaToolTipRequest(Object sender, ToolTipRequestEventArgs e)
at ICSharpCode.TextEditor.ToolTipRequestEventHandler.Invoke(Object sender, ToolTipRequestEventArgs e)
at ICSharpCode.TextEditor.TextArea.OnToolTipRequest(ToolTipRequestEventArgs e)
at ICSharpCode.TextEditor.TextArea.RequestToolTip(Point mousePos)
at ICSharpCode.TextEditor.TextArea.OnMouseHover(EventArgs e)
at System.Windows.Forms.Control.WmMouseHover(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at ICSharpCode.SharpDevelop.Commands.StartWorkbenchCommand.Run(IList`1 fileList)
at ICSharpCode.SharpDevelop.Sda.CallHelper.RunWorkbenchInternal(Object settings)
at ICSharpCode.SharpDevelop.Sda.CallHelper.RunWorkbench(WorkbenchSettings settings)
at ICSharpCode.SharpDevelop.Sda.SharpDevelopHost.RunWorkbench(WorkbenchSettings settings)
at ICSharpCode.SharpDevelop.SharpDevelopMain.RunApplication()
at ICSharpCode.SharpDevelop.SharpDevelopMain.Run(String[ args)
at ICSharpCode.SharpDevelop.SharpDevelopMain.Main(String[ args)
---- Post-error application state information:
Installed 3rd party AddIns:
Workbench.ActiveContent: [TextEditorDisplayBindingWrapper D:\Projekte\SharpDevelop\HyperTest\HyperTest\CdToc.cs]
ProjectService.OpenSolution: [Solution: FileName=D:\Projekte\SharpDevelop\HyperTest\HyperTest.sln, HasProjects=True, ReadOnly=False]
ProjectService.CurrentProject: [CSharpProject: HyperTest]