firebase / firebase-unity-sdk

The Firebase SDK for Unity
http://firebase.google.com
Apache License 2.0
220 stars 35 forks source link

[Bug] Crash stacktrace truncated in Crashlytics dashboard #440

Closed VolodymyrBS closed 2 years ago

VolodymyrBS commented 2 years ago

[REQUIRED] Please fill in the following fields:

[REQUIRED] Please describe the issue here:

I'm testing crashlytics integration in my android game. I'm trying a different exception. one normal C# exception and one fatal exception that stops the game. General C# exception looks good, but the fatal exception missing lot frames from stack traces. This is a log that I see in logcat: image

and this is what I see in dashboard: image image

I'm not sure if it is something that I need to configure or if it's Crashlitics limitation

paulinon commented 2 years ago

Hi @VolodymyrBS,

Version 9.4.0 of the SDK has been released recently. Could you confirm if this version makes a difference in terms of your issue? If it doesn't, please provide a minimal, reproducible example of your implementation along with the complete steps to replicate the issue so that we can identify what's causing this behavior.

VolodymyrBS commented 2 years ago

Hi @paulinon, I have created a minimal reproducible example with the latest SDK Here is the repo: TestCrashlytics

Steps to reproduce:

  1. Clone the repo;
  2. Import project into Unity for the Android platform;
  3. Import Firebase Crashlytics SDK into the project;
  4. Add package id;
  5. Add google-services.json into the project;
  6. Build the game with IL2CPP scripting backend and public symbols.zip;
  7. Upload symbold.zip to Firebase Crashlytics;
  8. Run the app on the device;
  9. Click the button with "Hard" text;
  10. Observe build was closed
  11. Check logcat for crash with SIGSEGV;
  12. Open crashlytics dashboard and open crash in libunity.so in method Mesh.CreateMesh();
  13. Observe that crash has only a few stack frames (2 in my case)
VolodymyrBS commented 2 years ago

also, I just noticed that #00 and #01 pc-s differ between stack trace from logcat and displayed in Crashlytics. logcat shows #01 pc as 99e710, and dashboard shows 99bde8 image image

paulinon commented 2 years ago

Thanks for providing the needed information, @VolodymyrBS. I was able to encounter the behavior you're facing where libunity.so appeared in the crashed thread. I also noticed missing frames corresponding to system libraries such as libart.so, libc.so, boot.oat, boot-framework.oat, and others. We currently cannot symbolicate these system libraries as we don't have visibility into the symbols associated with them. Our team is working on making this better, but we don't have any information or specific timeline to share other than that.

I'll be closing this for now. Should you have any related questions, you may get in touch with Firebase Support.

VolodymyrBS commented 2 years ago

okay, I got it. is there any way to manually download raw crash information to process it by hand?

paulinon commented 2 years ago

Hi @VolodymyrBS,

To do this, you may export Crashlytics data to BigQuery so that your data can be analyzed further.

VolodymyrBS commented 2 years ago

@paulinon thanks a lot!