由于我的应用程序崩溃,我从 Windows 应用商店应用程序提交过程(由审阅者发送)收到了一个小型转储。我在加载应用程序的符号时遇到问题,因为错误发生在内部App.ni.exe
,一个我不知道从哪里来的文件。
我的应用程序只有一个App.exe
(和一些 DLL),但转储一直引用.ni.dll
and .ni.exe
。这些文件在我的中找不到.appx
or .appxsym
files.
我的应用程序是为每个特定平台(x86、x64 和 ARM)构建的。这是在 stackdump 中崩溃的 x64 版本。
我目前对 Windbg 的尝试:
符号路径:
Srv*C:\Users\Vegard\Appdata\local\temp\SymbolCache*http://msdl.microsoft.com/download/symbols`
Windbg尝试:
0:006> !analyze -v
*******************************************************************************
* *
* Exception Analysis *
* *
*******************************************************************************
Unable to load image Newtonsoft.Json.ni.dll, Win32 error 0n2
*** WARNING: Unable to verify checksum for Newtonsoft.Json.ni.dll
*** ERROR: Module load completed but symbols could not be loaded for Newtonsoft.Json.ni.dll
Unable to load image App.ni.exe, Win32 error 0n2
*** WARNING: Unable to verify checksum for App.ni.exe
*** ERROR: Module load completed but symbols could not be loaded for App.ni.exe
Unable to load image mscorlib.ni.dll, Win32 error 0n2
*** WARNING: Unable to verify checksum for mscorlib.ni.dll
Update:尝试 ngen App.exe(以管理员身份运行)时出现以下错误:
> ngen.exe install App.exe
[snip]
This operation is only valid in the context of an app container.
(Exception from HRESULT: 0x8007109A)
在这种情况下,什么是应用程序容器?我应该从哪里运行它?
Update:经过长时间的故障排除,并通过其他方式找出根本原因,我得出的结论是我得到的小型转储文件缺少此信息。无论如何哄骗都可以让调试器加载文件的符号。