Is it possible to symbolicate MonoTouch crash dumps and get line numbers out of them?

余生长醉 提交于 2019-12-12 07:38:34

问题


Is it possible to symbolicate MonoTouch crash dumps and get line numbers out of them? If so, how is it done?

I have configured my project in the following way:

  • Build in release mode
  • Checked 'Enable debugging' in Project Options -> Build -> iPhone Build -> General tab
  • Checked 'Emit debugging information' in Project Options -> Build -> Compiler

Now, when I run symbolicatecrash against a dump, I get my method names in the stack trace but with only an offset against them (eg '+ 268') rather than a line number.

I am using MonoTouch 4.21.


回答1:


Short answer: I think the issue is with the ahead-of-time (AOT) compiler - but you better email such question to the mono-devel mailing-list to get a definitive answer.

Long answer:

Mono compilers/runtime (and that behavior is inherited by MonoTouch) keeps the debugging information, that includes line numbers, for its assemblies inside mdb files.

XCode works with DWARF (DSYM) files. When XCode symbolicate a crash dump it looks (only) in the (AOT-produced) DWARF symbols to get its information - i.e. the mdb files are not looked up.

Now the Mono debugger (and runtime) can cope with DWARF too (which should fit the bill). However for MonoTouch I'm not sure the AOT compiler (which calls gcc) is producing the final DWARF symbols containing the C# line numbers - resulting in symbols and offsets (both available to gcc) only being available.




回答2:


which version of xcode are you using?

There was an problem in earlier versions - check https://github.com/chrispix/symbolicatecrash-fix



来源:https://stackoverflow.com/questions/7569814/is-it-possible-to-symbolicate-monotouch-crash-dumps-and-get-line-numbers-out-of

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!