b18aaa1cf6
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.1.1 to 5.2.0. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v5.1.1...v5.2.0) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> |
||
---|---|---|
.github | ||
fx_crash_sig | ||
tests | ||
.gitignore | ||
CODE_OF_CONDUCT.md | ||
HISTORY.md | ||
LICENSE | ||
MANIFEST.in | ||
Makefile | ||
README.md | ||
pyproject.toml | ||
sample.json |
README.md
fx-crash-sig
Symbolicates crash pings and generates signatures.
Take crash ping stack traces and:
- Use Mozilla Symbolication Service symbolication to symbolicate crash ping stack traces
- Use socorro-siggen library to generate a crash signature
Project details:
- Code: https://github.com/mozilla-services/fx-crash-sig
- Issues: https://github.com/mozilla-services/fx-crash-sig/issues
- License: MPL v2
- Documentation: This README
Install (from PyPI)
pip install fx-crash-sig
Usage
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
- arg:
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
- arg:
- signature
symbolicate
: Symbolicates the stack traces in a crash ping structure payload.- signature
- arg:
crash_ping
: dict - returns: symbolicated stack traces
- arg:
- signature
get_signature_from_symbolicated
: Takes the output ofsymbolicate
, generates a signature, and returns the signature result.- signature
- arg:
symbolicated
: dict - returns:
siggen.generator.Result
- arg:
- signature
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
- arg:
symbolicate
: Symbolicates a single stack trace.- arg:
stack_trace
: dict - returns: symbolicated stack trace
- arg:
symbolicate_multi
: Symbolicates a list of stack traces.- arg:
stack_traces
: list of dicts - returns: list of symbolicated traces
- arg: