views:

599

answers:

3

I'm trying desparately to debug an application I'm trying to release. It was created on Win7 x64, and also runs fine on Win x32, but not on XP (Don't have Vista to test).

I've created a dump file by setting the _NT_SYMBOL_PATH to the directory of the application in XP, then run the debugger with: adplus -crash -pn launchmenot.exe

This creates a dump file which I've opened in Visual Studio 2008 (Having specified the directory of the application's PDBs and the MS symbol servers in VS. After VS downloads all of the symbols I just get 'There is no source code available for the current location'.

I have a feeling it could be from using the Interop.IWshRuntimeLibrary from Win7 on XP, but I really don't know.

The dump file is 107Mb, but the app itself is online here (compiled in debug mode). Could anyone point me in the right direction for finding the cause or fixing the error please?

Much appreciated. :)

A: 

You might have a bit more luck in wndbg -- download from the Debugging Tools for Windows page. Load the crash dump, set the symbol path and run !analyze -v to get detailed information on the crash. If you are still having problems finding the correct symbols try running !sym noisy and also the !itoldyouso command

the_mandrill
Thanks, I now have a rather cryptic 'Probably caused by : ntdll.dll ( ntdll!KiFastSystemCallRet+12ffa8 )'. I'll do some digging and will post if I find a solution. Thanks again.
Echilon
A: 

Use WinDebug to analyse the dump - it can also used for managed code.

See the blog entries by Tess Ferrandez for more info.

Oded
+1  A: 

Does this error message mean anything to you:

Cannot convert string 'pack://application:,,,/Resources/icon.ico' in attribute 'Icon' to object of type 'System.Windows.Media.ImageSource'. The image format is unrecognized. Error at object 'LaunchMeNot.WinUnhandledException' in markup file 'LaunchMeNot;component/winunhandledexception.xaml' Line 10 Position 46.

Edit: this last exception is actually being thrown from the unhandled exception filter and becomes fatal. There're two inner exceptions that describe the problem in more detail. It all starts off with this trace:

0012e44c 7c812afb [HelperMethodFrame: 0012e44c] 
0012e4f0 54fc6b82 System.Windows.Media.PixelFormat.GetPixelFormat(System.Windows.Media.SafeMILHandle)
0012e534 547ca498 System.Windows.Media.Imaging.BitmapSource.UpdateCachedSettings()
0012e56c 547ca431 System.Windows.Media.Imaging.BitmapSource.set_WicSourceHandle(System.Windows.Media.Imaging.BitmapSourceSafeMILHandle)
0012e598 547ca198 System.Windows.Media.Imaging.BitmapFrameDecode.FinalizeCreation()
0012e5c8 54fc6e86 System.Windows.Media.Imaging.BitmapSource.CompleteDelayedCreation()
0012e5f4 547cb3a8 System.Windows.Media.Imaging.BitmapSource.get_PixelWidth()
0012e600 56290f1f MS.Internal.AppModel.IconHelper.GetBestMatch(System.Collections.ObjectModel.ReadOnlyCollection`1<System.Windows.Media.Imaging.BitmapFrame>, Int32, Int32, Int32)
0012e678 5629168f MS.Internal.AppModel.IconHelper.GetIconHandlesFromBitmapFrame(System.Object, System.Windows.Media.Imaging.BitmapFrame, IconHandle ByRef, IconHandle ByRef)
0012e698 565df5fd System.Windows.Window.UpdateIcon()
0012e6b0 55c8ed3a System.Windows.Window.SetupInitialState(Double, Double, Double, Double)
0012e854 55c266c8 System.Windows.Window.CreateSourceWindowImpl()
0012e8d0 55c264b9 System.Windows.Window.SafeCreateWindow()
0012e8dc 55c263c1 System.Windows.Window.ShowHelper(System.Object)
0012e904 55c8e3b8 System.Windows.Window.Show()
0012e910 562076e7 System.Windows.Window.ShowDialog()
0012e984 00f70556 LaunchMeNot.App.OnStartup(System.Windows.StartupEventArgs)
0012e9f8 55bed4b9 System.Windows.Application.<.ctor>b__0(System.Object)
0012ea08 578461fa System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Boolean)
0012ea2c 578460ea System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Boolean, System.Delegate)
0012ea74 578442b4 System.Windows.Threading.Dispatcher.WrappedInvoke(System.Delegate, System.Object, Boolean, System.Delegate)
0012ea94 5784912d System.Windows.Threading.DispatcherOperation.InvokeImpl()
0012eac0 578490b8 System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
0012eac8 792f5681 System.Threading.ExecutionContext.runTryCode(System.Object)
0012eef0 79e71b4c [HelperMethodFrame_PROTECTOBJ: 0012eef0] System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object)
0012ef58 792f5577 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
0012ef74 792e01c5 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
0012ef8c 57848ff3 System.Windows.Threading.DispatcherOperation.Invoke()
0012efc4 57843957 System.Windows.Threading.Dispatcher.ProcessQueue()
0012f0a0 57843c43 System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
0012f0ec 578463de MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
0012f138 5784630a MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
0012f148 578461fa System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Boolean)
0012f16c 578460ea System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Boolean, System.Delegate)
0012f1b4 578442b4 System.Windows.Threading.Dispatcher.WrappedInvoke(System.Delegate, System.Object, Boolean, System.Delegate)
0012f1d4 57843411 System.Windows.Threading.Dispatcher.InvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Boolean)
0012f218 57843360 System.Windows.Threading.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority, System.Delegate, System.Object)
0012f23c 57845a4c MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
0012f3b4 0036217b [NDirectMethodFrameStandalone: 0012f3b4] MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
0012f3c4 57843a57 System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
0012f414 57843129 System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)
0012f420 578430cc System.Windows.Threading.Dispatcher.Run()
0012f42c 55bed47e System.Windows.Application.RunDispatcher(System.Object)
0012f438 55bec77f System.Windows.Application.RunInternal(System.Windows.Window)
0012f45c 55bd3a96 System.Windows.Application.Run(System.Windows.Window)
0012f46c 55bd3a59 System.Windows.Application.Run()
0012f478 00f700bc LaunchMeNot.App.Main()

which clearly indicates a problem with an image resource. The embedded exceptions are:

Exception from HRESULT: 0x88982F07

wrapped in:

The image format is unrecognized.

After a bit of googling I came across this post which details a similar finding. Looks like an icon in a unrecognized format. The post goes on to suggest to remove the icons. My guess is that you could try and redo them in a compliant editor.

Sorry, I don't get that far on any machine I've tried. I either get a silent crash, a generic '.NET Framework crash', or a working app.
Echilon
it's not the message i get in a dialog, it's message from the exception that causes your app to fault. Therefore I asked if you knew what this error meant for you.
it leaves a bunch of error messages in the eventlog as well, but i guess it is strictly related to clr internal error handling.
anyway, i ran it on winxp - it does not go beyond this clr exception with an error code of 0x80131506, and as far as i can tell is resource-related.
Thanks for this. At first I thought it may be a problem with Axialis Icon Studio, since the author of the post you linked to also used it, but it turns out I was missing the required 256 colour and 16 colour versions of the icon I'd specified for the application and in the mentioned icon file. Works fine on Vista and Win7, but XP doesn't like RGB/A icons.Including the RGBA, 256 colour and 16 colour versions of icons fixed the problem.
Echilon