| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Callgraph
Synopsis
- create :: AnalysisContext -> Graph
- type Graph = Map Vertex (Set Vertex)
- type Vertex = Symbol
- vertices :: Graph -> [Vertex]
- neighbors :: Graph -> Vertex -> Maybe (Set Vertex)
- filter :: (Set Vertex -> Bool) -> Graph -> Graph
- filterWithKey :: (Vertex -> Set Vertex -> Bool) -> Graph -> Graph
- recursive :: Graph -> [Vertex]
- leaf :: Graph -> [Vertex]
- callers :: Graph -> Vertex -> [Vertex]
- callees :: Graph -> Vertex -> [Vertex]
- mostCalled :: Graph -> Maybe Vertex
- mostConnected :: Graph -> Maybe Vertex
- reachable :: Graph -> Vertex -> Vertex -> Bool
- order :: Graph -> Int
- size :: Graph -> Int
Documentation
create :: AnalysisContext -> Graph Source #
Derive a callgraph from an AnalysisContext. Note: Not all runtime evaluated call destinations will be recovered via Binja.AnalysisContext.callers.
filter :: (Set Vertex -> Bool) -> Graph -> Graph Source #
Filter all children that satisfy the predicate
filterWithKey :: (Vertex -> Set Vertex -> Bool) -> Graph -> Graph Source #
Filter all keys/values that satisfy the predicate
mostCalled :: Graph -> Maybe Vertex Source #
Find the vertex with the maximum sum of callers. If multiple vertex share the same maximum caller sum return the first vertex found of maximum sum.
mostConnected :: Graph -> Maybe Vertex Source #
Find the vertex with the maximum sum of callers and callees. If multiple vertex share the same maximum sum return the first vertex found of maximum sum.