Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Functions for computing retainers
Synopsis
- findRetainers :: Maybe Int -> ClosureFilter -> [ClosurePtr] -> DebugM [[ClosurePtr]]
- findRetainersOf :: Maybe Int -> [ClosurePtr] -> [ClosurePtr] -> DebugM [[ClosurePtr]]
- findRetainersOfConstructor :: Maybe Int -> [ClosurePtr] -> String -> DebugM [[ClosurePtr]]
- findRetainersOfConstructorExact :: Maybe Int -> [ClosurePtr] -> String -> DebugM [[ClosurePtr]]
- findRetainersOfInfoTable :: Maybe Int -> [ClosurePtr] -> InfoTablePtr -> DebugM [[ClosurePtr]]
- addLocationToStack :: [ClosurePtr] -> DebugM [(SizedClosureP, Maybe SourceInformation)]
- displayRetainerStack :: [(String, [(SizedClosureP, Maybe SourceInformation)])] -> IO ()
- addLocationToStack' :: [ClosurePtr] -> DebugM [(ClosurePtr, SizedClosureP, Maybe SourceInformation)]
- displayRetainerStack' :: [(String, [(ClosurePtr, SizedClosureP, Maybe SourceInformation)])] -> IO ()
- findRetainersOfArrWords :: Maybe Int -> [ClosurePtr] -> Size -> DebugM [[ClosurePtr]]
- data EraRange = EraRange {}
- profHeaderInEraRange :: Maybe (ProfHeader a) -> Maybe EraRange -> Bool
- data ClosureFilter
- = ConstructorDescFilter (ConstrDesc -> Bool)
- | InfoFilter (StgInfoTable -> Bool)
- | InfoPtrFilter (InfoTablePtr -> Bool)
- | InfoSourceFilter (SourceInformation -> Bool)
- | SizeFilter (Size -> Bool)
- | ProfHeaderFilter (Maybe ProfHeaderWithPtr -> Bool)
- | AddressFilter (ClosurePtr -> Bool)
- | AndFilter ClosureFilter ClosureFilter
- | OrFilter ClosureFilter ClosureFilter
- | NotFilter ClosureFilter
- | PureFilter Bool
- profHeaderReferencesCCS :: Maybe ProfHeaderWithPtr -> Set CCSPtr -> Bool
- findRetainersOfEra :: Maybe Int -> EraRange -> [ClosurePtr] -> DebugM [[ClosurePtr]]
Documentation
findRetainers :: Maybe Int -> ClosureFilter -> [ClosurePtr] -> DebugM [[ClosurePtr]] Source #
From the given roots, find any path to one of the given pointers. Note: This function can be quite slow! The first argument is a limit to how many paths to find. You should normally set this to a small number such as 10.
findRetainersOf :: Maybe Int -> [ClosurePtr] -> [ClosurePtr] -> DebugM [[ClosurePtr]] Source #
findRetainersOfConstructor :: Maybe Int -> [ClosurePtr] -> String -> DebugM [[ClosurePtr]] Source #
findRetainersOfConstructorExact :: Maybe Int -> [ClosurePtr] -> String -> DebugM [[ClosurePtr]] Source #
findRetainersOfInfoTable :: Maybe Int -> [ClosurePtr] -> InfoTablePtr -> DebugM [[ClosurePtr]] Source #
addLocationToStack :: [ClosurePtr] -> DebugM [(SizedClosureP, Maybe SourceInformation)] Source #
displayRetainerStack :: [(String, [(SizedClosureP, Maybe SourceInformation)])] -> IO () Source #
addLocationToStack' :: [ClosurePtr] -> DebugM [(ClosurePtr, SizedClosureP, Maybe SourceInformation)] Source #
displayRetainerStack' :: [(String, [(ClosurePtr, SizedClosureP, Maybe SourceInformation)])] -> IO () Source #
findRetainersOfArrWords :: Maybe Int -> [ClosurePtr] -> Size -> DebugM [[ClosurePtr]] Source #
profHeaderInEraRange :: Maybe (ProfHeader a) -> Maybe EraRange -> Bool Source #
data ClosureFilter Source #
findRetainersOfEra :: Maybe Int -> EraRange -> [ClosurePtr] -> DebugM [[ClosurePtr]] Source #