Empty callStackRootFrames on MXCrashDiagnostic

Hi folks!

My iOS app has the MetricKit integration, and I'm processing the reports on my server. While looking at some MXCrashDiagnostic reports, I saw certain reports that has threadAttributed property as true, but callStackRootFrames is just an empty array. So the report looks like the following example

"callStacks" : [
  {
    "threadAttributed" : true,
    "callStackRootFrames" : [ ]
  },
  // ...
  // other callstacks where threadAttributed is false
  // but callStackRootFrames is not empty
]

Looking at the documentation I can see threadAttributed is used to determine if the crash/exception occurred in this crash. So I can't understand how callStackRootFrames can be empty when threadAttributed is true.

Is this a bug or an expected behavior?

Also, is there a case where the crash/exception report does not have any callstack with threadAttributed as true? From the definition, it feels like there should always be exactly one attributed thread on each crash report.

Thanks for the help!

Replies

@BringSupersonicsBack

What are the other fields of the crash? Have you converted the exception code, type, and signal to the mach exception codes and BSD signals? That might give us some hints--though I expect all types to generate a stack frame.

Also, have you noticed any consistency when this happens in terms of either device type or os version? Look at the metadata. This would be helpful to identify if it smells like a bug introduced in X OS version on Y device models. Smells like a bug to me. I'd suggest making a defect with the MetricKit team via Feedback Assistant.

I'm building a MetricKit analysis app for iPad and Mac and I'm curious about your findings too as it is a data scenario I haven't considered. The strange thing that I have found in the past is call stack frames, but none of them marked as attributed. - FB12739927