How to symbolicate a Xam.Mac crash log?

Hi, I've had an update to a Xamarin.Mac based app rejected from the AppStore because it's crashing. I haven't managed to replicate the crash behaviour locally but Apple have sent me the crash logs.

I need to be able to symbolicate the crash logs so I can try to work out what is causing the crash but I haven't been able to work out how to do that.

From what I understand I believe I need the dSYM file to be able to do that, but Visual Studio doesn't seem to be generating it for Xamarin.Mac like it does for Xamarin.iOS. I have Debug Information set to full in the Compiler options for the AppStore build configuration but that just seems to generate a .pdb file not .dSYM.

This post by @JohnMiller looked promising https://jmillerdev.net/symbolicating-ios-crash-files-xamarin-ios/ but it's iOS related and not Xamarin.Mac

How do you symbolicate crash logs for Xamarin.Mac ?

Best Answer

Answers

  • ChrisHamonsChrisHamons USForum Administrator, Xamarin Team Xamurai

    In general you could also try Ahead of Time compiling your application which tends to produce better stack traces as well.

  • KeithBoyntonKeithBoynton GBMember ✭✭

    @ColeX Again, that looked promising... the answer which talks about atos makes sense, however step 4 can't be followed because the .dSYM isn't present. Is there some setting I'm missing in Visual Studio to generate the .dSYM ?

    @ChrisHamons Thanks for that link, AOT looks very interesting, when you say produce better stack traces do you mean that they don't need symbolicating?

  • ChrisHamonsChrisHamons USForum Administrator, Xamarin Team Xamurai

    No, you'll still need to symbolicate in many cases, but as you pre-compile the code instead of JIT you'll be able to review managed frames as actual symbols instead of hashes in your stack.

  • KeithBoyntonKeithBoynton GBMember ✭✭

    Thanks @ChrisHamons that makes sense, I appreciate the heads up, AOT is definitely something for me to take advantage of.

    I'm still left with the original problem that I don't know how to get the compiler to generate the dSYM for Xamarin.Mac like it does for iOS. I'm on Full debugging in the Compiler options in Visual Studio and I don't see any other options that look relevant for it.

    @ColeX what settings do you use in Visual Studio (or anywhere else) to get the dSYM that is needed in the link you gave?

  • KeithBoyntonKeithBoynton GBMember ✭✭

    Thank you @ColeX perfect! The .dSYM is found there!

  • ankhelborankhelbor Member ✭✭

    A crash report may be unsymbolicated, fully symbolicated, or partially symbolicated. Unsymbolicated crash reports will not contain the method or function names in the backtrace. Instead, you have hexadecimal addresses of executable code within the loaded binary images

  • ankhelborankhelbor Member ✭✭
    edited October 2018

    @ankhelbor said:
    A crash report may be unsymbolicated, fully symbolicated, or partially symbolicated. Unsymbolicated crash reports will not contain the method or function names in the backtrace. Instead, you have hexadecimal addresses of executable code within the loaded binary image

  • ankhelborankhelbor Member ✭✭

    @ankhelbor said:

    @ankhelbor said:
    A crash report may be unsymbolicated, fully symbolicated, or partially symbolicated. Unsymbolicated crash reports will not contain the method or function names in the backtrace. Instead, you have hexadecimal addresses of executable code within the loaded binary images

Sign In or Register to comment.