Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Type Points From analysis in the style of - Cork: Dynamic Memory Leak Detectionfor Garbage-Collected Languages - https://dl.acm.org/doi/10.1145/1190216.1190224 -
Synopsis
- typePointsFrom :: [ClosurePtr] -> DebugM TypePointsFrom
- detectLeaks :: Int -> Debuggee -> IO ()
- data TypePointsFrom = TypePointsFrom {
- nodes :: !(MonoidalMap Key CensusStats)
- edges :: !(MonoidalMap Edge CensusStats)
- getNodes :: TypePointsFrom -> Map Key CensusStats
- getEdges :: TypePointsFrom -> Map Edge CensusStats
- edgeSource :: Edge -> Key
- edgeTarget :: Edge -> Key
- type Key = InfoTablePtr
- data Edge = Edge !Key !Key
- getKey :: InfoTablePtr -> DebugM String
Documentation
typePointsFrom :: [ClosurePtr] -> DebugM TypePointsFrom Source #
Perform a "type points from" heap census
detectLeaks :: Int -> Debuggee -> IO () Source #
Repeatedly call typesPointsFrom
and perform the leak detection
analysis.
data TypePointsFrom Source #
TypePointsFrom | |
|
Instances
Monoid TypePointsFrom Source # | |
Defined in GHC.Debug.TypePointsFrom mappend :: TypePointsFrom -> TypePointsFrom -> TypePointsFrom # mconcat :: [TypePointsFrom] -> TypePointsFrom # | |
Semigroup TypePointsFrom Source # | |
Defined in GHC.Debug.TypePointsFrom (<>) :: TypePointsFrom -> TypePointsFrom -> TypePointsFrom # sconcat :: NonEmpty TypePointsFrom -> TypePointsFrom # stimes :: Integral b => b -> TypePointsFrom -> TypePointsFrom # | |
Show TypePointsFrom Source # | |
Defined in GHC.Debug.TypePointsFrom showsPrec :: Int -> TypePointsFrom -> ShowS # show :: TypePointsFrom -> String # showList :: [TypePointsFrom] -> ShowS # |
getNodes :: TypePointsFrom -> Map Key CensusStats Source #
getEdges :: TypePointsFrom -> Map Edge CensusStats Source #
edgeSource :: Edge -> Key Source #
edgeTarget :: Edge -> Key Source #
type Key = InfoTablePtr Source #