我刚从3.2.6更新到MT 4.0.1。现在看来,异常报告在设备上运行时不再包含堆栈跟踪。
我有一个附加到AppDomain.CurrentDomain.UnhandledException的异常处理程序,用于将异常报告保存到文件中。在Debug&中的模拟器上释放模式,UnhandledExceptionEventArgs.ExceptionObject.StackTrace已设置。在Debug&中的设备上属性为null的释放模式。
我已尝试在项目选项的“编译器”部分中检查“发出调试信息”。我尝试在MT build args中添加“--nosymbolstrip”。我已尝试启用和禁用LLVM。
有什么想法吗?在我们确信收到的任何异常报告包含必要的诊断信息之前,我们将无法在App Store中进行更新。
答案 0 :(得分:1)
ExceptionObject.ToString()提供了哪些信息?它应该包括错误消息和堆栈跟踪。我知道这对我有用,b / c我最近用它向Novell提交了一个bug。
此外,您可能希望在static void Main()
中围绕应用启动包装try-catch,因为AppDomain.UnhandledException旨在用于线程外异常。
答案 1 :(得分:0)
这似乎是在MonoTouch 4.0.4.1中修复的,虽然我没有看到更新说明中提到的内容。也许Xamarin的某个人可以确认它是故意修复的。
对于记录,通常是在设备上断开的堆栈跟踪,而不仅仅是与异常相关的堆栈跟踪。以前如果你做new StackTrace()
那么它的框架将是不完整的。