Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- pause :: Debuggee -> IO ()
- fork :: Debuggee -> IO ()
- pauseThen :: Debuggee -> DebugM b -> IO b
- resume :: Debuggee -> IO ()
- pausePoll :: Debuggee -> IO ()
- withPause :: Debuggee -> IO a -> IO a
- precacheBlocks :: DebugM [RawBlock]
- gcRoots :: DebugM [ClosurePtr]
- allBlocks :: DebugM [RawBlock]
- getSourceInfo :: InfoTablePtr -> DebugM (Maybe SourceInformation)
- savedObjects :: DebugM [ClosurePtr]
- version :: DebugM Word32
- dereferenceClosures :: [ClosurePtr] -> DebugM [SizedClosure]
- dereferenceClosure :: ClosurePtr -> DebugM SizedClosure
- dereferenceClosureDirect :: ClosurePtr -> DebugM SizedClosure
- dereferenceClosureC :: ClosurePtr -> DebugM SizedClosureC
- dereferenceStack :: StackCont -> DebugM StackFrames
- dereferencePapPayload :: PayloadCont -> DebugM PapPayload
- dereferenceConDesc :: ConstrDescCont -> DebugM ConstrDesc
- dereferenceInfoTable :: InfoTablePtr -> DebugM StgInfoTable
Pause/Resume
pausePoll :: Debuggee -> IO () Source #
Like pause, but wait for the debuggee to pause itself. It currently impossible to resume after a pause caused by a poll.?????????? Is that true???? can we not just call resume????
General Requests
precacheBlocks :: DebugM [RawBlock] Source #
Fetch all the blocks from the debuggee and add them to the block cache
gcRoots :: DebugM [ClosurePtr] Source #
Query the debuggee for the list of GC Roots
getSourceInfo :: InfoTablePtr -> DebugM (Maybe SourceInformation) Source #
Query the debuggee for source information about a specific info table.
This requires your executable to be built with -finfo-table-map
.
savedObjects :: DebugM [ClosurePtr] Source #
Query the debuggee for the list of saved objects.
Dereferencing functions
dereferenceClosures :: [ClosurePtr] -> DebugM [SizedClosure] Source #
dereferenceClosure :: ClosurePtr -> DebugM SizedClosure Source #
Consult the BlockCache
for the block which contains a specific
closure, if it's not there then try to fetch the right block, if that
fails, call dereferenceClosureDirect
dereferenceClosureDirect :: ClosurePtr -> DebugM SizedClosure Source #
Decode a closure corresponding to the given ClosurePtr
You should not use this function directly unless you know what you are
doing. dereferenceClosure
will be much faster in general.
dereferenceStack :: StackCont -> DebugM StackFrames Source #
Deference some StackFrames from a given StackCont
dereferencePapPayload :: PayloadCont -> DebugM PapPayload Source #
Derference the PapPayload from the PayloadCont