为什么在设备上运行的MonoTouch 4中,Exception StackTrace为null?

时间:2011-04-29 04:59:15

标签: xamarin.ios

我刚从3.2.6更新到MT 4.0.1。现在看来,异常报告在设备上运行时不再包含堆栈跟踪。

我有一个附加到AppDomain.CurrentDomain.UnhandledException的异常处理程序,用于将异常报告保存到文件中。在Debug&中的模拟器上释放模式,UnhandledExceptionEventArgs.ExceptionObject.StackTrace已设置。在Debug&中的设备上属性为null的释放模式。

我已尝试在项目选项的“编译器”部分中检查“发出调试信息”。我尝试在MT build args中添加“--nosymbolstrip”。我已尝试启用和禁用LLVM。

有什么想法吗?在我们确信收到的任何异常报告包含必要的诊断信息之前,我们将无法在App Store中进行更新。

2 个答案:

答案 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()那么它的框架将是不完整的。