我想爲我的MonoTouch代碼實現一個有用的通用異常處理程序。MonoTouch堆棧跟蹤不詳細
如果我將一個處理程序附加到AppDomain.CurrentDomain.UnhandledException
,則根本不存在堆棧跟蹤,即.StackTrace屬性爲空或空。
如果我換我UIApplication.Main(args)
呼叫try {} catch {}
,堆棧跟蹤不包含任何有用的信息:
at MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x00000] in <filename unknown>:0
at MonoTouch.UIKit.UIApplication.Main (System.String[] args) [0x00000] in <filename unknown>:0
at MyNamespace.MyProduct.MyProject.Application.Main (System.String[] args) [0x00000] in <filename unknown>:0
也就是說,它並不比去,我捕捉到的異常在main()方法的更深。
任何想法如何在堆棧跟蹤中獲得一些更有用的信息,還是全部通過AOT編譯完全優化? (堆棧跟蹤與調試模式中的預期相同。)
就像問題所說,我知道這在調試模式下工作正常。我想在發佈的代碼中包含這個處理程序 - 但是如果所有的調試信息都被刪除了,那就沒有意義了。問題是 - 在發佈模式代碼中沒有辦法獲取堆棧跟蹤嗎? – tomfanning 2011-05-24 07:46:29