---
title: CrashDiagnostic
framework: metrickit
role: symbol
role_heading: Structure
path: metrickit/crashdiagnostic
---

# CrashDiagnostic

A diagnostic report that describes a crash that occurred.

## Declaration

```swift
struct CrashDiagnostic
```

## Mentioned in

Monitoring app performance with MetricKit

## Discussion

Discussion This carries a CallStackTree along with crash-specific metadata including the exception type, exception code, signal, and optional Objective-C exception reason. Use terminationCategory to correlate this crash with the aggregate termination counts in ForegroundTerminationMetric and BackgroundTerminationMetric: if let category = diagnostic.terminationCategory {     switch category {     case .watchdog:         flagWatchdogTermination()     case .badAccess:         flagBadAccessCrash()     default:         break     } } This type replaces MXCrashDiagnostic.

## Topics

### Call stack

- [callStackTree](metrickit/crashdiagnostic/callstacktree.md)

### Exception details

- [exceptionType](metrickit/crashdiagnostic/exceptiontype.md)
- [exceptionCode](metrickit/crashdiagnostic/exceptioncode.md)
- [signal](metrickit/crashdiagnostic/signal.md)
- [exceptionReason](metrickit/crashdiagnostic/exceptionreason.md)
- [virtualMemoryRegionInfo](metrickit/crashdiagnostic/virtualmemoryregioninfo.md)

### Termination counts

- [terminationCategory](metrickit/crashdiagnostic/terminationcategory-swift.property.md)
- [terminationReason](metrickit/crashdiagnostic/terminationreason-swift.property.md)

### Structures

- [CrashDiagnostic.ObjectiveCExceptionReason](metrickit/crashdiagnostic/objectivecexceptionreason.md)
- [CrashDiagnostic.TerminationCategory](metrickit/crashdiagnostic/terminationcategory-swift.struct.md)
- [CrashDiagnostic.TerminationReason](metrickit/crashdiagnostic/terminationreason-swift.struct.md)

## Relationships

### Conforms To

- [Decodable](swift/decodable.md)
- [Encodable](swift/encodable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Crash and hang diagnostics

- [HangDiagnostic](metrickit/hangdiagnostic.md)
- [AppLaunchDiagnostic](metrickit/applaunchdiagnostic.md)
