我有一个Windows Phone 8应用程序,我已经开发了2年多,现在大约有15k行代码。从今天开始,它在显示主屏幕5秒后突然崩溃。我已经从第一行代码调试它,一直到主屏幕运行代码的地方。
我没有例外,我看不出它的外观有什么不对。我还能做些什么来确定崩溃的地点/时间/原因?
编辑:仔细观察后,我在输出中找到了这个:
System.Windows.ni.dll中出现“System.Net.WebException”类型的异常,并且在托管/本机边界之前未处理 System.Windows.ni.dll中出现“System.Net.WebException”类型的异常,并且在托管/本机边界之前未处理 'TaskHost.exe'(CLR C:\ windows \ system32 \ coreclr.dll:Silverlight AppDomain):已加载'C:\ windows \ system32 \ en-US \ System.Xml.debug.resources.DLL'。模块没有符号。 System.Xml.ni.dll中出现“System.Xml.XmlException”类型的异常,并且在托管/本机边界之前未处理 'TaskHost.exe'(CLR C:\ windows \ system32 \ coreclr.dll:Silverlight AppDomain):已加载'C:\ Data \ Programs {6932AD96-A8AA-45F2-BC4E-81B7665641D8} \ Install \ microsoft.phone.controls。 DLL”。无法找到或打开PDB文件。 'TaskHost.exe'(CLR C:\ windows \ system32 \ coreclr.dll:Silverlight AppDomain):已加载'C:\ windows \ system32 \ LocationService.Interop.ni.dll'。跳过加载符号。模块已经过优化,调试器选项“Just My Code”已启用。 System.Windows.ni.dll中出现“System.OutOfMemoryException”类型的异常,并且在托管/本机边界之前未处理 'TaskHost.exe'(CLR C:\ windows \ system32 \ coreclr.dll:Silverlight AppDomain):已加载'C:\ windows \ system32 \ en-US \ mscorlib.debug.resources.dll'。模块没有符号。 未知模块中出现“System.Runtime.InteropServices.SEHException”类型的异常。并且在托管/本地边界之前未处理 程序'[2540] TaskHost.exe'已退出,代码为0(0x0)。
但我不知道该怎么做。
答案 0 :(得分:0)
您可以尝试处理Application.UnhandledException
事件。只要Windows Phone应用程序未处理异常,就会引发此事件。
可能存在某些非常罕见的情况,即不会触发此情况,例如OutOfMemoryException。
在您的项目中,您应该有一个扩展Application
的类。修改其构造函数以订阅此事件
public partial class App : Application
{
public App()
{
...
this.UnhandledException += this.Application_UnhandledException;
InitializeComponent();
}
private void Application_UnhandledException(object sender,
ApplicationUnhandledExceptionEventArgs e)
{
Debug.WriteLine(e.ExceptionObject);
}
}