Skip to main content

Get crash signature from Firefox crash ping

Project description

fx-crash-sig

Symbolicates crash pings and generates signatures.

Take crash ping stack traces and:

  1. Use Mozilla Symbolication Service symbolication to symbolicate crash ping stack traces
  2. Use socorro-siggen library to generate a crash signature

Project details:

Install (from PyPI)

pip install fx-crash-sig

Usage

Example script:

import json

from fx_crash_sig.crash_processor import CrashProcessor

with open("crashping.json") as fp:
    crash_ping = json.load(fp)

crash_processor = CrashProcessor()

signature_result = crash_processor.get_signature(crash_ping)
print(signature_result.signature)

Command line (using sample.json):

cat sample.json | fx-crash-sig

Run this for more command line help:

fx-crash-sig --help

Minimal crash ping structure

The legacy crash ping (the pingsender one--not the glean one) is documented here:

https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/data/crash-ping.html

These are the parts of the legacy crash ping we use:

- normalized_os                (optional)
- payload:
  - metadata:
    - async_shutdown_timeout   (optional)
    - ipc_channel_error        (optional)
    - oom_allocation_size      (optional)
    - moz_crash_reason         (optional)
  - stack_traces:
    - crash_info:
      - crashing_thread
      - type
    - modules[]
      - debug_file
      - debug_id
      - filename
      - base_addr
    - threads[]
      - frames[]
         - ip
         - module_index
         - trust

API

fx_crash_sig.crash_processor

  • CrashProcessor: symbolicates and generates signatures for legacy crash pings
    • __init__
      • arg: max_frames: int (40)
      • arg: api_url: str (https://symbolication.services.mozilla.com/symbolicate/v5)
      • arg: verbose: bool
    • get_signature: Takes a crash ping structure, symbolicates it using Mozilla Symbolication Service, generates a signature, and returns the signature result.
      • signature
        • arg: crash_ping: dict
        • returns: siggen.generator.Result
    • symbolicate: Symbolicates the stack traces in a crash ping structure payload.
      • signature
        • arg: crash_ping: dict
        • returns: symbolicated stack traces
    • get_signature_from_symbolicated: Takes the output of symbolicate, generates a signature, and returns the signature result.
      • signature
        • arg: symbolicated: dict
        • returns: siggen.generator.Result

fx_crash_sig.symbolicate

  • Symbolicator: symbolicates stack traces
    • __init__
      • arg: max_frames: int (40)
      • arg: api_url: str (https://symbolication.services.mozilla.com/symbolicate/v5)
      • arg: verbose: bool
    • symbolicate: Symbolicates a single stack trace.
      • arg: stack_trace: dict
      • returns: symbolicated stack trace
    • symbolicate_multi: Symbolicates a list of stack traces.
      • arg: stack_traces: list of dicts
      • returns: list of symbolicated traces

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fx-crash-sig-1.0.2.tar.gz (36.3 kB view hashes)

Uploaded Source

Built Distribution

fx_crash_sig-1.0.2-py3-none-any.whl (35.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page