Skip to main content

Crate panicgraph

Crate panicgraph 

Source
Expand description

Reports which functions can panic, why, and through what call path.

The analysis proper is the taxonomy, the graph, the solver and the witness search. None of it depends on the compiler: the driver produces Artifact values and everything here works from those, which is what lets the whole thing be tested without building a crate first.

The binaries are thin shells around these modules, so argument parsing and rendering can be exercised directly by tests.

Re-exports§

pub use crate::category::Category;
pub use crate::category::CategorySet;
pub use crate::category::Termination;
pub use crate::category::parse_selector;
pub use crate::graph::FuncId;
pub use crate::graph::Graph;
pub use crate::model::Artifact;
pub use crate::model::Body;
pub use crate::model::BuildConfig;
pub use crate::model::CallSite;
pub use crate::model::EdgeKind;
pub use crate::model::FuncKey;
pub use crate::model::Guard;
pub use crate::model::Loc;
pub use crate::model::OPEN_PREFIX;
pub use crate::model::PanicSite;
pub use crate::model::Reified;
pub use crate::model::StdMode;
pub use crate::model::UnwindOrigin;
pub use crate::solve::Policy;
pub use crate::solve::Solution;
pub use crate::solve::Solver;
pub use crate::witness::Terminal;
pub use crate::witness::Witness;

Modules§

api
Shared by the interactive view and the drawing, so it is only built when one of them is. JSON payloads served to the interactive view.
args
Command line parsing.
category
The panic taxonomy and the bitset used to propagate it.
check
The gate a continuous integration run applies to the findings.
graph
The merged call graph.
model
The data model the driver emits and the solver consumes.
palette
The colours the view and the drawing share, so it is built with either. The colours both renderings draw with, read from one file.
report
Rendering of analysis results.
run
Drives a cargo build through the analysis wrapper and loads the results.
select
Which functions a rendering names, and under what names.
serve
A small HTTP server for the interactive view.
solve
The suppression-aware reachability solver.
svg
A standalone flame graph.
util
Shared container aliases.
verify
Verification of findings against the compiled artifact.
witness
Shortest call path from a function to a panic it can reach.