Xamarin.ios 为什么MonoTouch 4在设备上运行时出现异常StackTrace null?

Xamarin.ios 为什么MonoTouch 4在设备上运行时出现异常StackTrace null?,xamarin.ios,Xamarin.ios,我刚刚从3.2.6更新到MT 4.0.1。现在,在设备上运行时,异常报告似乎不再包含堆栈跟踪 我有一个附加到AppDomain.CurrentDomain.UnhandledException的异常处理程序,用于将异常报告保存到文件中。在调试和发布模式下的模拟器上,设置UnhandledExceptionEventArgs.ExceptionObject.StackTrace。在调试和发布模式下的设备上,该属性为null 我已尝试在项目选项的“编译器”部分中选中“发出调试信息”。我已经尝试在MT

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

我有一个附加到AppDomain.CurrentDomain.UnhandledException的异常处理程序,用于将异常报告保存到文件中。在调试和发布模式下的模拟器上,设置UnhandledExceptionEventArgs.ExceptionObject.StackTrace。在调试和发布模式下的设备上,该属性为null

我已尝试在项目选项的“编译器”部分中选中“发出调试信息”。我已经尝试在MT构建参数中添加“-nosymbolstrip”。我已尝试启用和禁用LLVM


有什么想法吗?除非我们确信收到的任何异常报告都包含必要的诊断信息,否则我们将无法在应用商店中进行更新。

ExceptionObject.ToString()提供了哪些信息?它应该包括错误消息和堆栈跟踪。我知道这对我很有效,b/c我最近用它向Novell提交了一个bug


此外,您可能希望在应用程序启动时在
static void Main()
中添加一个try catch,因为AppDomain.UnhandledException用于线程外异常。

这似乎在MonoTouch 4.0.4.1中得到了修复,尽管我没有看到更新描述中提到过。也许Xamarin的人可以确认这是故意的


就记录而言,在设备上被破坏的通常是堆栈跟踪,而不仅仅是那些与异常相关的跟踪。以前,如果执行了
new StackTrace()
,则其帧将不完整。

异常。ToString()包括模拟器上的完整堆栈跟踪,而设备上的ToString()中缺少该信息。当然,异常类型、错误消息和目标站点都是有用的数据,但堆栈跟踪是最重要的,不幸的是缺少了什么。如果在
static void Main()
周围放置一个try catch并在那里查看,是否仍然缺少这些信息?