Unhandled exception in Managed Stack Explorer

Topics: For MSE Users
Aug 15, 2006 at 4:45 PM
migrated from power toy forums
originally posted by Kevin Dente - http://forums.microsoft.com/MSDN/User/Profile.aspx?UserID=6607&SiteID=1

I just started playing around with Managed Stack Explorer -very cool! I peeked into a couple of different apps (including the test app), and it worked great. But I tried point it at Reflector, and got an unhandled exception "Illegal characters in path". The exception details are:

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

                            • Exception Text **************
System.ArgumentException: Illegal characters in path.
at System.IO.Path.CheckInvalidPathChars(String path)
at System.IO.Path.GetFileName(String path)
at Microsoft.Mse.Library.FrameInfo.GetMetaDataInfo(CorMetadataImport importer)
at Microsoft.Mse.Library.FrameInfo..ctor(CorFrame frame, CorMetadataImport importer)
at Microsoft.Mse.Library.ThreadInfo.UpdateStackTrace(Int32 depth)
at Microsoft.Mse.Library.ProcessInfo.UpdateProcessInfo(Boolean withStack, Boolean allThreads, IList`1 threadIds, Int32 depth)
at Microsoft.Mse.Library.ProcessInfo.UpdateSelectedThreadStacks(IList`1 threadIds, Int32 depth)
at Microsoft.Mse.Library.ProcessInfo.GetDisplayStackTrace(IList`1 threadSelectedIdList, Int32 depth)
at Microsoft.Mse.Gui.MainGui.DisplayLoadedStackTrace()
at Microsoft.Mse.Gui.MainGui.stackRefreshTimer_Tick(Object sender, EventArgs e)
at System.Windows.Forms.Timer.OnTick(EventArgs e)
at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Aug 15, 2006 at 4:46 PM
originally posted by Matthew Manela on power toy forums
Hmm, Thats interesting. What is the path on your computer to reflector.exe?

When I run MSE on Reflector it works but you will not be able to see the threads or stack of it. The reason is because .NET Refelctor is a .NET 1.0 program and MSE only supports 2.0.

MSE should detect that and let you know that it's not a 2.0 process so you aren't confused when you see no threads. Maybe that will be built into a later release
Aug 15, 2006 at 4:47 PM
originally posted by Kevin Dente

The path is "C:\Program Files\Reflector"

I'm not sure what you mean by "is a .NET 1.0 program". Reflector is quite capable of (and in this case, is) running under the 2.0 framework. And in fact I do see threads - it's only when I click on one that I get the error.

I know that Reflector plays some funny load games - it loads an assembly dynamically from an embedded resource rather than from a disk file. Perhaps MSE gets confused in that case?
Aug 15, 2006 at 4:48 PM
originally posted by Srinath Aaleti - MSFT

Kevin, thanks for reporting the issue. Yeah, I can repro the problem. Module.Name in GetMetaDataInfo() doesn't return a valid path for reflector - may be because of the way it loads .Net 2.0? I fixed the bug in the internal builds.