2010-02-15 4 views
2

Я пытаюсь отчаянно отлаживать приложение, которое я пытаюсь выпустить. Он был создан на Win7 x64, а также отлично работает на Win x32, но не на XP (у него нет Vista для тестирования).Отладка управляемой ошибки приложения

Я создал файл дампа, установив _NT_SYMBOL_PATH в директорию приложения в XP, а затем запустить отладчик: ADPlus -crash -pn launchmenot.exe

Это создает файл дампа, который я открыта в Visual Studio 2008 (указав каталог PDB приложений и серверов символов MS в VS. После того, как VS загрузит все символы, которые я только что получил, «для текущего местоположения нет исходного кода».

У меня такое чувство, что это может быть от использования Interop.IWshRuntimeLibrary от Win7 на XP, но я действительно не знаю.

Файл дампа - 107 Мб, но само приложение находится в сети here (скомпилировано в режиме отладки). Может ли кто-нибудь указать мне в правильном направлении, чтобы найти причину или исправить ошибку, пожалуйста?

Большое значение. :)

ответ

3

Означает ли это сообщение об ошибке что-нибудь к вам:

Невозможно преобразовать строку «пакет: // Применение: ,,,/Ресурсы/icon.ico» в атрибуте «Icon» для объекта типа 'System.Windows.Media.ImageSource'. Формат изображения непризнан. Ошибка в объекте «LaunchMeNot.WinUnhandledException» в разметки файла «LaunchMeNot; компонент/winunhandledexception.xaml» Линия 10 Позиция 46.

Edit: это последнее исключение фактически выброшен из необработанного фильтра исключений и становится фатальным. Есть два внутренних исключения, которые описывают проблему более подробно. Все начинается с этого следа:

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() 

что явно указывает на проблему с ресурсом изображения. Встроенные исключения:

Исключение из HRESULT: 0x88982F07

завернутые в:

Формат изображения не распознан.

После небольшого количества поисковых запросов я столкнулся с this post, который детализирует аналогичный вывод. Похоже на значок в непризнанном формате. В сообщении далее предлагается удалить значки. Я предполагаю, что вы можете попробовать и переделать их в совместимом редакторе.

+0

Извините, я не добираюсь так далеко на любой машине, которую я пробовал. Я либо получаю тихий крах, общий «.NET Framework crash», либо работающее приложение. – Echilon

+0

Это не сообщение, которое я получаю в диалоговом окне, это сообщение из исключения, которое приводит к ошибке вашего приложения. Поэтому я спросил, знаете ли вы, что эта ошибка означала для вас. – deemok

+0

он также оставляет кучу сообщений об ошибках в журнале событий, но я думаю, что это строго связано с внутренней обработкой ошибок clr. – deemok

1

Возможно, вам больше повезло в wndbg - скачать с the Debugging Tools for Windows page. Загрузите аварийный дамп, установите путь символа и запустите !analyze -v, чтобы получить подробную информацию о сбое. Если у вас все еще возникают проблемы с поиском правильных символов, попробуйте запустить !sym noisy, а также команду !itoldyouso

+0

Спасибо, у меня теперь довольно загадочный «Возможно, вызвано: ntdll.dll (ntdll! KiFastSystemCallRet + 12ffa8)». Я сделаю кое-что, и опубликую, если найду решение. Еще раз спасибо. – Echilon

0

Используйте WinDebug для анализа дампа - он также может использоваться для управляемого кода.

См. blog entries от Tess Ferrandez для получения дополнительной информации.

Смежные вопросы