我向 Windows 商店提交了我的应用程序更新,但由于崩溃而未能通过认证。我从他们那里收到了 triagedump.dmp 文件。
我用windbg打开了文件并加载了sos和mscordacwks dll并输入了!analyze -v
我有
MANAGED_OBJECT_NAME:SYSTEM.NULLREFERENCEEXCEPTION
MANAGED_STACK_COMMAND: !pe 2931590
So i did !pe 2931590
Exception object: 02931590
Exception type: System.NullReferenceException
Message: <Invalid Object>
InnerException: <none>
StackTrace (generated):
SP IP Function
050CE81C 6E653202 YoutubeMP3Converter_ni!UNKNOWN+0x9a
050CF58C 6F1DE6FF mscorlib_ni!System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__0(System.Object)+0x33
050CF594 6CA313D4 System_Runtime_WindowsRuntime_ni!UNKNOWN+0x24
0A43F964 6F0E2607 mscorlib_ni!System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()+0x17
0A43F96C 6CA5E728 System_Runtime_WindowsRuntime_ni!UNKNOWN+0x28
0A43F970 6E9ECB6A mscorlib_ni!System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object)+0x3e
0A43F978 6EA02407 mscorlib_ni!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)+0xa7
0A43F9E4 6EA02346 mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)+0x16
0A43F9F8 6EA0DE60 mscorlib_ni!System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()+0x60
0A43FA0C 6EA0D609 mscorlib_ni!System.Threading.ThreadPoolWorkQueue.Dispatch()+0x149
0A43FA5C 6EA0D4A5 mscorlib_ni!System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()+0x5
我不知道 YoutubeMP3Converter_ni!UNKNOWN+0x9a 的 UNKNOWN 部分所以我没有他们使用的 YoutubeMP3Converter.ni.exe 文件。我也尝试使用我的 YoutubeMP3Converter.exe,但他说文件图像头中的内存图像头不匹配。
那么我在这里有什么选择呢? - 我可以创建我的 exe 的 .ni(本机映像)版本吗?- 如何获得正确的 YoutubeMP3Converter.exe?我必须把它从 appxupload 包里拿出来吗?- 如果我的 Windows 商店应用程序崩溃,它会创建一个完整的转储而不是一个 triagedump(小型转储),我可以创建它吗?
我知道异常是什么,但我不知道它发生在哪里,因为我没有完整的堆栈跟踪:(。
- 更新 - 找到它您可以在 AppxUpload 包中找到匹配的 .exe 以在 windbg 中加载为 img,该包在您将应用程序上传到商店时发送。然后 WinDbg 有足够的信息来显示正确的符号,这将引导您找到引发异常的类/方法。