libdd-crashtracker 2.0.1

Detects program crashes and reports them to datadog backend.
Documentation

libdd-crashtracker

Crash detection and reporting library for Datadog APM.

Overview

libdd-crashtracker detects program crashes and generates detailed crash reports with stack traces, metadata, and system information, then sends them to the Datadog backend.

Features

  • Crash Detection: Catches segfaults, uncaught exceptions, and abnormal terminations
  • Stack Traces: Captures stack traces with symbol resolution
  • Signal Handling: Handles Unix signals (SIGSEGV, SIGABRT, SIGBUS, etc.)
  • Windows Support: SEH (Structured Exception Handling) on Windows
  • Metadata Collection: Gathers crash context, environment, and tags
  • Async Reporting: Non-blocking crash report transmission
  • Symbolication: Symbol resolution using blazesym
  • Telemetry Integration: Reports crashes via Datadog telemetry
  • Receiver Binary: Standalone crash receiver process

Architecture

The crashtracker uses a two-process architecture:

  1. Collector (in-process): Detects crashes and collects information
  2. Receiver (separate process): Processes crash data and sends reports

This ensures crash reports are sent even if the main process is corrupted.

Features Flags

  • collector (default): Enable in-process crash collection
  • receiver (default): Enable crash receiver functionality
  • collector_windows (default): Windows crash collection
  • benchmarking: Enable benchmark functionality

Example Usage

use libdd_crashtracker;

// Initialize crash tracker
// let config = CrashTrackerConfig::new(...);
// crashtracker::init(config)?;

// Your application runs...
// Crashes are automatically detected and reported

Platform Support

  • Linux: Signal-based crash detection with blazesym symbolication
  • macOS: Signal-based crash detection
  • Windows: SEH-based crash detection

Receiver Binary

The crate includes a crashtracker-receiver binary that runs as a separate process to ensure crash reports are sent even when the main process crashes.