Crate libcasr

source ·
Expand description

LibCASR

LibCASR provides API for parsing stacktraces, collecting crash reports, triaging crashes (deduplication and clustering), and estimating severity of crashes.

It can analyze crashes from different sources:

  • AddressSanitizer
  • Gdb output

and program languages:

  • C/C++
  • Rust
  • Go
  • Python

It could be built with exploitable feature for severity estimation crashes collected from gdb. To save crash reports as json use serde feature.

Modules

  • Asan module implements ParseStacktrace, Exception and Severity traits for AddressSanitizer reports.
  • Constants for signals and stack trace filtering.
  • Cpp module implements Exception trait for C++ exception messages.
  • A custom Casr error.
  • Provides Exception trait.
  • Execution_class module contains the ExecutionClass structure which holds an information about crash severity. CLASSES holds raw instances of ExecutionClass structure.
  • Gdb module implements ParseStacktrace, Exception and Severity traits for Gdb output.
  • Go module implements ParseStacktrace and Exception traits for Go panic output.
  • Python module implements ParseStacktrace and Exception traits for Python reports.
  • Report contains the main struct CrashReport with all information about crash.
  • Rust module implements Exception traits for Rust panic messages.
  • Provides Severity trait.
  • Provides API’s for parsing, filtering, deduplication and clustering.

Macros

  • This macro updates variables used to remove trusted functions from stack trace