Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
The Haskell representation of a heap closure, the DebugClosure
type
- is quite similar to the one found in the ghc-heap
package but with some
- more type parameters and other changes..
Synopsis
- type Closure = DebugClosure CCSPtr SrtCont PayloadCont ConstrDescCont StackCont ClosurePtr
- type SizedClosure = DebugClosureWithSize CCSPtr SrtCont PayloadCont ConstrDescCont StackCont ClosurePtr
- type SizedClosureC = DebugClosureWithSize CCSPtr SrtCont PayloadCont ConstrDesc StackCont ClosurePtr
- type SizedClosureP = DebugClosureWithSize CCSPtr SrtPayload PapPayload ConstrDesc StackCont ClosurePtr
- data DebugClosure ccs srt pap string s b
- = ConstrClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- ptrArgs :: ![b]
- dataArgs :: ![Word]
- constrDesc :: !string
- | FunClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- srt :: !srt
- ptrArgs :: ![b]
- dataArgs :: ![Word]
- | ThunkClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- srt :: !srt
- ptrArgs :: ![b]
- dataArgs :: ![Word]
- | SelectorClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- selectee :: !b
- | PAPClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- arity :: !HalfWord
- n_args :: !HalfWord
- fun :: !b
- pap_payload :: !pap
- | APClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- arity :: !HalfWord
- n_args :: !HalfWord
- fun :: !b
- ap_payload :: !pap
- | APStackClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- ap_st_size :: !Word
- fun :: !b
- payload :: !s
- | IndClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- indirectee :: !b
- | BCOClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- instrs :: !b
- literals :: !b
- bcoptrs :: !b
- arity :: !HalfWord
- size :: !HalfWord
- bitmap :: ![Word]
- | BlackholeClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- indirectee :: !b
- | ArrWordsClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- bytes :: !Word
- arrWords :: ![Word]
- | MutArrClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- mccPtrs :: !Word
- mccSize :: !Word
- mccPayload :: ![b]
- | SmallMutArrClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- mccPtrs :: !Word
- mccPayload :: ![b]
- | MVarClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- queueHead :: !b
- queueTail :: !b
- value :: !b
- | MutVarClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- var :: !b
- | BlockingQueueClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- link :: !b
- blackHole :: !b
- owner :: !b
- queue :: !b
- | TSOClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- _link :: !b
- global_link :: !b
- tsoStack :: !b
- trec :: !b
- blocked_exceptions :: !b
- bq :: !b
- threadLabel :: !(Maybe b)
- what_next :: WhatNext
- why_blocked :: WhyBlocked
- flags :: [TsoFlags]
- threadId :: Word64
- saved_errno :: Word32
- dirty :: Word32
- alloc_limit :: Int64
- tot_stack_size :: Word32
- prof :: Maybe StgTSOProfInfo
- | StackClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- stack_size :: !Word32
- stack_dirty :: !Word8
- stack_marking :: !Word8
- frames :: s
- | WeakClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- cfinalizers :: !b
- key :: !b
- value :: !b
- finalizer :: !b
- mlink :: !(Maybe b)
- | TVarClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- current_value :: !b
- tvar_watch_queue :: !b
- num_updates :: !Int
- | TRecChunkClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- prev_chunk :: !b
- next_idx :: !Word
- entries :: ![TRecEntry b]
- | MutPrimClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- ptrArgs :: ![b]
- dataArgs :: ![Word]
- | PrimClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- ptrArgs :: ![b]
- dataArgs :: ![Word]
- | OtherClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- hvalues :: ![b]
- rawWords :: ![Word]
- | UnsupportedClosure {
- info :: !StgInfoTableWithPtr
- profHeader :: Maybe (ProfHeader ccs)
- = ConstrClosure {
- data TRecEntry b = TRecEntry {
- tvar :: !b
- expected_value :: !b
- new_value :: !b
- trec_num_updates :: Int
- type DebugClosureWithSize = DebugClosureWithExtra Size
- data DebugClosureWithExtra x ccs srt pap string s b = DCS {
- extraDCS :: x
- unDCS :: DebugClosure ccs srt pap string s b
- newtype Size = Size {}
- newtype InclusiveSize = InclusiveSize {}
- newtype RetainerSize = RetainerSize {}
- noSize :: DebugClosureWithSize ccs srt pap string s b -> DebugClosure ccs srt pap string s b
- dcSize :: DebugClosureWithSize ccs srt pap string s b -> Size
- allClosures :: DebugClosure ccs (GenSrtPayload c) (GenPapPayload c) a (GenStackFrames (GenSrtPayload c) c) c -> [c]
- data StgInfoTable = StgInfoTable {
- ptrs :: HalfWord
- nptrs :: HalfWord
- tipe :: ClosureType
- srtlen :: HalfWord
- data ClosureType
- = INVALID_OBJECT
- | CONSTR
- | CONSTR_1_0
- | CONSTR_0_1
- | CONSTR_2_0
- | CONSTR_1_1
- | CONSTR_0_2
- | CONSTR_NOCAF
- | FUN
- | FUN_1_0
- | FUN_0_1
- | FUN_2_0
- | FUN_1_1
- | FUN_0_2
- | FUN_STATIC
- | THUNK
- | THUNK_1_0
- | THUNK_0_1
- | THUNK_2_0
- | THUNK_1_1
- | THUNK_0_2
- | THUNK_STATIC
- | THUNK_SELECTOR
- | BCO
- | AP
- | PAP
- | AP_STACK
- | IND
- | IND_STATIC
- | RET_BCO
- | RET_SMALL
- | RET_BIG
- | RET_FUN
- | UPDATE_FRAME
- | CATCH_FRAME
- | UNDERFLOW_FRAME
- | STOP_FRAME
- | BLOCKING_QUEUE
- | BLACKHOLE
- | MVAR_CLEAN
- | MVAR_DIRTY
- | TVAR
- | ARR_WORDS
- | MUT_ARR_PTRS_CLEAN
- | MUT_ARR_PTRS_DIRTY
- | MUT_ARR_PTRS_FROZEN_DIRTY
- | MUT_ARR_PTRS_FROZEN_CLEAN
- | MUT_VAR_CLEAN
- | MUT_VAR_DIRTY
- | WEAK
- | PRIM
- | MUT_PRIM
- | TSO
- | STACK
- | TREC_CHUNK
- | ATOMICALLY_FRAME
- | CATCH_RETRY_FRAME
- | CATCH_STM_FRAME
- | WHITEHOLE
- | SMALL_MUT_ARR_PTRS_CLEAN
- | SMALL_MUT_ARR_PTRS_DIRTY
- | SMALL_MUT_ARR_PTRS_FROZEN_DIRTY
- | SMALL_MUT_ARR_PTRS_FROZEN_CLEAN
- | COMPACT_NFDATA
- | CONTINUATION
- | N_CLOSURE_TYPES
- data WhatNext
- data WhyBlocked
- data TsoFlags
- data StgInfoTableWithPtr = StgInfoTableWithPtr {}
- data DebugStackFrame srt b = DebugStackFrame {
- frame_info :: !StgInfoTableWithPtr
- frame_srt :: srt
- values :: [FieldValue b]
- data FieldValue b
- newtype GenStackFrames srt b = GenStackFrames {
- getFrames :: [DebugStackFrame srt b]
- type StackFrames = GenStackFrames SrtCont ClosurePtr
- data StackCont = StackCont StackPtr RawStack
- newtype GenPapPayload b = GenPapPayload {
- getValues :: [FieldValue b]
- type PapPayload = GenPapPayload ClosurePtr
- data PayloadCont = PayloadCont ClosurePtr [Word64]
- data ConstrDesc = ConstrDesc {}
- type ConstrDescCont = InfoTablePtr
- parseConstrDesc :: String -> ConstrDesc
- newtype GenSrtPayload b = GenSrtPayload {}
- type SrtPayload = GenSrtPayload ClosurePtr
- type SrtCont = InfoTablePtr
- data ProfHeader a = ProfHeader {
- ccs :: a
- hp :: ProfHeaderWord
- data ProfHeaderWord
- = RetainerHeader {
- trav :: !Bool
- retainerSet :: !RetainerSetPtr
- | LDVWord {
- state :: !Bool
- creationTime :: !Word32
- lastUseTime :: !Word32
- | EraWord Word64
- | OtherHeader Word64
- = RetainerHeader {
- type ProfHeaderWithPtr = ProfHeader CCSPtr
- type CCSPayload = GenCCSPayload CCSPtr CCPtr
- data GenCCSPayload ccsPtr ccPtr = CCSPayload {
- ccsID :: !Int64
- ccsCc :: ccPtr
- ccsPrevStack :: Maybe ccsPtr
- ccsIndexTable :: Maybe IndexTablePtr
- ccsRoot :: Maybe CCSPtr
- ccsDepth :: Word
- ccsSccCount :: Word64
- ccsSelected :: Word
- ccsTimeTicks :: Word
- ccsMemAlloc :: Word64
- ccsInheritedAlloc :: Word64
- ccsInheritedTicks :: Word
- data CCPayload = CCPayload {}
- data IndexTable = IndexTable {}
- class Hextraversable m where
- hextraverse :: Applicative f => (a -> f b) -> (c -> f d) -> (e -> f g) -> (h -> f i) -> (j -> f k) -> (l -> f n) -> m a c e h j l -> f (m b d g i k n)
- hexmap :: forall a b c d e f g h i j k l t. Hextraversable t => (a -> b) -> (c -> d) -> (e -> f) -> (g -> h) -> (i -> j) -> (k -> l) -> t a c e g i k -> t b d f h j l
Closure Representation
type SizedClosure = DebugClosureWithSize CCSPtr SrtCont PayloadCont ConstrDescCont StackCont ClosurePtr Source #
type SizedClosureC = DebugClosureWithSize CCSPtr SrtCont PayloadCont ConstrDesc StackCont ClosurePtr Source #
type SizedClosureP = DebugClosureWithSize CCSPtr SrtPayload PapPayload ConstrDesc StackCont ClosurePtr Source #
data DebugClosure ccs srt pap string s b Source #
This is the representation of a Haskell value on the heap. It reflects https://gitlab.haskell.org/ghc/ghc/blob/master/includes/rts/storage/Closures.h
The data type is parametrized by 4 type parameters which correspond to different pointer types.
All Heap objects have the same basic layout. A header containing a pointer
to the info table and a payload with various fields. The info
field below
always refers to the info table pointed to by the header. The remaining
fields are the payload.
See https://gitlab.haskell.org/ghc/ghc/wikis/commentary/rts/storage/heap-objects for more information.
ConstrClosure | A data constructor |
| |
FunClosure | A function |
| |
ThunkClosure | A thunk, an expression not obviously in head normal form |
| |
SelectorClosure | A thunk which performs a simple selection operation |
| |
PAPClosure | An unsaturated function application |
| |
APClosure | A function application |
| |
APStackClosure | A suspended thunk evaluation |
| |
IndClosure | A pointer to another closure, introduced when a thunk is updated to point at its value |
| |
BCOClosure | A byte-code object (BCO) which can be interpreted by GHC's byte-code interpreter (e.g. as used by GHCi) |
| |
BlackholeClosure | A thunk under evaluation by another thread |
| |
ArrWordsClosure | A |
| |
MutArrClosure | A |
| |
SmallMutArrClosure | A Since: 8.10.1 |
| |
MVarClosure | An |
| |
MutVarClosure | A |
| |
BlockingQueueClosure | An STM blocking queue. |
| |
TSOClosure | |
| |
StackClosure | |
| |
WeakClosure | |
| |
TVarClosure | |
| |
TRecChunkClosure | |
| |
MutPrimClosure | |
| |
PrimClosure | |
| |
OtherClosure | Another kind of closure |
| |
UnsupportedClosure | |
|
Instances
Hextraversable DebugClosure Source # | |
Defined in GHC.Debug.Types.Closures hextraverse :: Applicative f => (a -> f b) -> (c -> f d) -> (e -> f g) -> (h -> f i) -> (j -> f k) -> (l -> f n) -> DebugClosure a c e h j l -> f (DebugClosure b d g i k n) Source # | |
Foldable (DebugClosure ccs srt pap string s) Source # | |
Defined in GHC.Debug.Types.Closures fold :: Monoid m => DebugClosure ccs srt pap string s m -> m # foldMap :: Monoid m => (a -> m) -> DebugClosure ccs srt pap string s a -> m # foldMap' :: Monoid m => (a -> m) -> DebugClosure ccs srt pap string s a -> m # foldr :: (a -> b -> b) -> b -> DebugClosure ccs srt pap string s a -> b # foldr' :: (a -> b -> b) -> b -> DebugClosure ccs srt pap string s a -> b # foldl :: (b -> a -> b) -> b -> DebugClosure ccs srt pap string s a -> b # foldl' :: (b -> a -> b) -> b -> DebugClosure ccs srt pap string s a -> b # foldr1 :: (a -> a -> a) -> DebugClosure ccs srt pap string s a -> a # foldl1 :: (a -> a -> a) -> DebugClosure ccs srt pap string s a -> a # toList :: DebugClosure ccs srt pap string s a -> [a] # null :: DebugClosure ccs srt pap string s a -> Bool # length :: DebugClosure ccs srt pap string s a -> Int # elem :: Eq a => a -> DebugClosure ccs srt pap string s a -> Bool # maximum :: Ord a => DebugClosure ccs srt pap string s a -> a # minimum :: Ord a => DebugClosure ccs srt pap string s a -> a # sum :: Num a => DebugClosure ccs srt pap string s a -> a # product :: Num a => DebugClosure ccs srt pap string s a -> a # | |
Traversable (DebugClosure ccs srt pap string s) Source # | |
Defined in GHC.Debug.Types.Closures traverse :: Applicative f => (a -> f b) -> DebugClosure ccs srt pap string s a -> f (DebugClosure ccs srt pap string s b) # sequenceA :: Applicative f => DebugClosure ccs srt pap string s (f a) -> f (DebugClosure ccs srt pap string s a) # mapM :: Monad m => (a -> m b) -> DebugClosure ccs srt pap string s a -> m (DebugClosure ccs srt pap string s b) # sequence :: Monad m => DebugClosure ccs srt pap string s (m a) -> m (DebugClosure ccs srt pap string s a) # | |
Functor (DebugClosure ccs srt pap string s) Source # | |
Defined in GHC.Debug.Types.Closures fmap :: (a -> b) -> DebugClosure ccs srt pap string s a -> DebugClosure ccs srt pap string s b # (<$) :: a -> DebugClosure ccs srt pap string s b -> DebugClosure ccs srt pap string s a # | |
Generic (DebugClosure ccs srt pap string s b) Source # | |
Defined in GHC.Debug.Types.Closures type Rep (DebugClosure ccs srt pap string s b) :: Type -> Type # from :: DebugClosure ccs srt pap string s b -> Rep (DebugClosure ccs srt pap string s b) x # to :: Rep (DebugClosure ccs srt pap string s b) x -> DebugClosure ccs srt pap string s b # | |
(Show ccs, Show string, Show srt, Show pap, Show s, Show b) => Show (DebugClosure ccs srt pap string s b) Source # | |
Defined in GHC.Debug.Types.Closures showsPrec :: Int -> DebugClosure ccs srt pap string s b -> ShowS # show :: DebugClosure ccs srt pap string s b -> String # showList :: [DebugClosure ccs srt pap string s b] -> ShowS # | |
(Eq ccs, Eq string, Eq srt, Eq pap, Eq s, Eq b) => Eq (DebugClosure ccs srt pap string s b) Source # | |
Defined in GHC.Debug.Types.Closures (==) :: DebugClosure ccs srt pap string s b -> DebugClosure ccs srt pap string s b -> Bool # (/=) :: DebugClosure ccs srt pap string s b -> DebugClosure ccs srt pap string s b -> Bool # | |
(Ord ccs, Ord string, Ord srt, Ord pap, Ord s, Ord b) => Ord (DebugClosure ccs srt pap string s b) Source # | |
Defined in GHC.Debug.Types.Closures compare :: DebugClosure ccs srt pap string s b -> DebugClosure ccs srt pap string s b -> Ordering # (<) :: DebugClosure ccs srt pap string s b -> DebugClosure ccs srt pap string s b -> Bool # (<=) :: DebugClosure ccs srt pap string s b -> DebugClosure ccs srt pap string s b -> Bool # (>) :: DebugClosure ccs srt pap string s b -> DebugClosure ccs srt pap string s b -> Bool # (>=) :: DebugClosure ccs srt pap string s b -> DebugClosure ccs srt pap string s b -> Bool # max :: DebugClosure ccs srt pap string s b -> DebugClosure ccs srt pap string s b -> DebugClosure ccs srt pap string s b # min :: DebugClosure ccs srt pap string s b -> DebugClosure ccs srt pap string s b -> DebugClosure ccs srt pap string s b # | |
type Rep (DebugClosure ccs srt pap string s b) Source # | |
Defined in GHC.Debug.Types.Closures |
TRecEntry | |
|
Instances
Wrappers
data DebugClosureWithExtra x ccs srt pap string s b Source #
DCS | |
|
Instances
Hextraversable (DebugClosureWithExtra x) Source # | |
Defined in GHC.Debug.Types.Closures hextraverse :: Applicative f => (a -> f b) -> (c -> f d) -> (e -> f g) -> (h -> f i) -> (j -> f k) -> (l -> f n) -> DebugClosureWithExtra x a c e h j l -> f (DebugClosureWithExtra x b d g i k n) Source # | |
(Show x, Show ccs, Show string, Show srt, Show pap, Show s, Show b) => Show (DebugClosureWithExtra x ccs srt pap string s b) Source # | |
Defined in GHC.Debug.Types.Closures showsPrec :: Int -> DebugClosureWithExtra x ccs srt pap string s b -> ShowS # show :: DebugClosureWithExtra x ccs srt pap string s b -> String # showList :: [DebugClosureWithExtra x ccs srt pap string s b] -> ShowS # | |
(Eq x, Eq ccs, Eq string, Eq srt, Eq pap, Eq s, Eq b) => Eq (DebugClosureWithExtra x ccs srt pap string s b) Source # | |
Defined in GHC.Debug.Types.Closures (==) :: DebugClosureWithExtra x ccs srt pap string s b -> DebugClosureWithExtra x ccs srt pap string s b -> Bool # (/=) :: DebugClosureWithExtra x ccs srt pap string s b -> DebugClosureWithExtra x ccs srt pap string s b -> Bool # | |
(Ord x, Ord ccs, Ord string, Ord srt, Ord pap, Ord s, Ord b) => Ord (DebugClosureWithExtra x ccs srt pap string s b) Source # | |
Defined in GHC.Debug.Types.Closures compare :: DebugClosureWithExtra x ccs srt pap string s b -> DebugClosureWithExtra x ccs srt pap string s b -> Ordering # (<) :: DebugClosureWithExtra x ccs srt pap string s b -> DebugClosureWithExtra x ccs srt pap string s b -> Bool # (<=) :: DebugClosureWithExtra x ccs srt pap string s b -> DebugClosureWithExtra x ccs srt pap string s b -> Bool # (>) :: DebugClosureWithExtra x ccs srt pap string s b -> DebugClosureWithExtra x ccs srt pap string s b -> Bool # (>=) :: DebugClosureWithExtra x ccs srt pap string s b -> DebugClosureWithExtra x ccs srt pap string s b -> Bool # max :: DebugClosureWithExtra x ccs srt pap string s b -> DebugClosureWithExtra x ccs srt pap string s b -> DebugClosureWithExtra x ccs srt pap string s b # min :: DebugClosureWithExtra x ccs srt pap string s b -> DebugClosureWithExtra x ccs srt pap string s b -> DebugClosureWithExtra x ccs srt pap string s b # |
Exclusive size
newtype InclusiveSize Source #
Instances
newtype RetainerSize Source #
Instances
noSize :: DebugClosureWithSize ccs srt pap string s b -> DebugClosure ccs srt pap string s b Source #
dcSize :: DebugClosureWithSize ccs srt pap string s b -> Size Source #
allClosures :: DebugClosure ccs (GenSrtPayload c) (GenPapPayload c) a (GenStackFrames (GenSrtPayload c) c) c -> [c] Source #
Info Table Representation
data StgInfoTable Source #
StgInfoTable | |
|
Instances
Generic StgInfoTable Source # | |
Defined in GHC.Debug.Types.Closures type Rep StgInfoTable :: Type -> Type # from :: StgInfoTable -> Rep StgInfoTable x # to :: Rep StgInfoTable x -> StgInfoTable # | |
Show StgInfoTable Source # | |
Defined in GHC.Debug.Types.Closures showsPrec :: Int -> StgInfoTable -> ShowS # show :: StgInfoTable -> String # showList :: [StgInfoTable] -> ShowS # | |
Eq StgInfoTable Source # | |
Defined in GHC.Debug.Types.Closures (==) :: StgInfoTable -> StgInfoTable -> Bool # (/=) :: StgInfoTable -> StgInfoTable -> Bool # | |
type Rep StgInfoTable Source # | |
Defined in GHC.Debug.Types.Closures |
data ClosureType Source #
Instances
ThreadRunGHC | |
ThreadInterpret | |
ThreadKilled | |
ThreadComplete | |
WhatNextUnknownValue Word16 | Please report this as a bug |
Instances
Generic WhatNext Source # | |
Show WhatNext Source # | |
Eq WhatNext Source # | |
Ord WhatNext Source # | |
Defined in GHC.Debug.Types.Closures | |
type Rep WhatNext Source # | |
Defined in GHC.Debug.Types.Closures type Rep WhatNext = D1 ('MetaData "WhatNext" "GHC.Debug.Types.Closures" "ghc-debug-common-0.6.0.0-inplace" 'False) ((C1 ('MetaCons "ThreadRunGHC" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ThreadInterpret" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ThreadKilled" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ThreadComplete" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "WhatNextUnknownValue" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word16))))) |
data WhyBlocked Source #
Instances
TsoLocked | |
TsoBlockx | |
TsoInterruptible | |
TsoStoppedOnBreakpoint | |
TsoMarked | |
TsoSqueezed | |
TsoAllocLimit | |
TsoFlagsUnknownValue Word32 | Please report this as a bug |
Instances
Generic TsoFlags Source # | |
Show TsoFlags Source # | |
Eq TsoFlags Source # | |
Ord TsoFlags Source # | |
Defined in GHC.Debug.Types.Closures | |
type Rep TsoFlags Source # | |
Defined in GHC.Debug.Types.Closures type Rep TsoFlags = D1 ('MetaData "TsoFlags" "GHC.Debug.Types.Closures" "ghc-debug-common-0.6.0.0-inplace" 'False) (((C1 ('MetaCons "TsoLocked" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TsoBlockx" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TsoInterruptible" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TsoStoppedOnBreakpoint" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "TsoMarked" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TsoSqueezed" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TsoAllocLimit" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TsoFlagsUnknownValue" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32))))) |
data StgInfoTableWithPtr Source #
Instances
Show StgInfoTableWithPtr Source # | |
Defined in GHC.Debug.Types.Closures showsPrec :: Int -> StgInfoTableWithPtr -> ShowS # show :: StgInfoTableWithPtr -> String # showList :: [StgInfoTableWithPtr] -> ShowS # | |
Eq StgInfoTableWithPtr Source # | |
Defined in GHC.Debug.Types.Closures (==) :: StgInfoTableWithPtr -> StgInfoTableWithPtr -> Bool # (/=) :: StgInfoTableWithPtr -> StgInfoTableWithPtr -> Bool # | |
Ord StgInfoTableWithPtr Source # | |
Defined in GHC.Debug.Types.Closures compare :: StgInfoTableWithPtr -> StgInfoTableWithPtr -> Ordering # (<) :: StgInfoTableWithPtr -> StgInfoTableWithPtr -> Bool # (<=) :: StgInfoTableWithPtr -> StgInfoTableWithPtr -> Bool # (>) :: StgInfoTableWithPtr -> StgInfoTableWithPtr -> Bool # (>=) :: StgInfoTableWithPtr -> StgInfoTableWithPtr -> Bool # max :: StgInfoTableWithPtr -> StgInfoTableWithPtr -> StgInfoTableWithPtr # min :: StgInfoTableWithPtr -> StgInfoTableWithPtr -> StgInfoTableWithPtr # |
Stack Frame Representation
data DebugStackFrame srt b Source #
DebugStackFrame | |
|
Instances
data FieldValue b Source #
Instances
newtype GenStackFrames srt b Source #
GenStackFrames | |
|
Instances
Information needed to decode a set of stack frames
PAP payload representation
newtype GenPapPayload b Source #
GenPapPayload | |
|
Instances
type PapPayload = GenPapPayload ClosurePtr Source #
data PayloadCont Source #
Information needed to decode a PAP payload
Instances
Show PayloadCont Source # | |
Defined in GHC.Debug.Types.Closures showsPrec :: Int -> PayloadCont -> ShowS # show :: PayloadCont -> String # showList :: [PayloadCont] -> ShowS # | |
Eq PayloadCont Source # | |
Defined in GHC.Debug.Types.Closures (==) :: PayloadCont -> PayloadCont -> Bool # (/=) :: PayloadCont -> PayloadCont -> Bool # |
Constructor Description Representation
data ConstrDesc Source #
Instances
Show ConstrDesc Source # | |
Defined in GHC.Debug.Types.Closures showsPrec :: Int -> ConstrDesc -> ShowS # show :: ConstrDesc -> String # showList :: [ConstrDesc] -> ShowS # | |
Eq ConstrDesc Source # | |
Defined in GHC.Debug.Types.Closures (==) :: ConstrDesc -> ConstrDesc -> Bool # (/=) :: ConstrDesc -> ConstrDesc -> Bool # | |
Ord ConstrDesc Source # | |
Defined in GHC.Debug.Types.Closures compare :: ConstrDesc -> ConstrDesc -> Ordering # (<) :: ConstrDesc -> ConstrDesc -> Bool # (<=) :: ConstrDesc -> ConstrDesc -> Bool # (>) :: ConstrDesc -> ConstrDesc -> Bool # (>=) :: ConstrDesc -> ConstrDesc -> Bool # max :: ConstrDesc -> ConstrDesc -> ConstrDesc # min :: ConstrDesc -> ConstrDesc -> ConstrDesc # |
type ConstrDescCont = InfoTablePtr Source #
Information needed to decode a ConstrDesc
parseConstrDesc :: String -> ConstrDesc Source #
SRT field representation
newtype GenSrtPayload b Source #
Instances
type SrtPayload = GenSrtPayload ClosurePtr Source #
type SrtCont = InfoTablePtr Source #
data ProfHeader a Source #
ProfHeader | |
|
Instances
data ProfHeaderWord Source #
RetainerHeader | |
| |
LDVWord | |
| |
EraWord Word64 | |
OtherHeader Word64 |
Instances
Show ProfHeaderWord Source # | |
Defined in GHC.Debug.Types.Closures showsPrec :: Int -> ProfHeaderWord -> ShowS # show :: ProfHeaderWord -> String # showList :: [ProfHeaderWord] -> ShowS # | |
Eq ProfHeaderWord Source # | |
Defined in GHC.Debug.Types.Closures (==) :: ProfHeaderWord -> ProfHeaderWord -> Bool # (/=) :: ProfHeaderWord -> ProfHeaderWord -> Bool # | |
Ord ProfHeaderWord Source # | |
Defined in GHC.Debug.Types.Closures compare :: ProfHeaderWord -> ProfHeaderWord -> Ordering # (<) :: ProfHeaderWord -> ProfHeaderWord -> Bool # (<=) :: ProfHeaderWord -> ProfHeaderWord -> Bool # (>) :: ProfHeaderWord -> ProfHeaderWord -> Bool # (>=) :: ProfHeaderWord -> ProfHeaderWord -> Bool # max :: ProfHeaderWord -> ProfHeaderWord -> ProfHeaderWord # min :: ProfHeaderWord -> ProfHeaderWord -> ProfHeaderWord # |
type ProfHeaderWithPtr = ProfHeader CCSPtr Source #
type CCSPayload = GenCCSPayload CCSPtr CCPtr Source #
data GenCCSPayload ccsPtr ccPtr Source #
CCSPayload | |
|
Instances
data IndexTable Source #
IndexTable | |
|
Instances
Show IndexTable Source # | |
Defined in GHC.Debug.Types.Closures showsPrec :: Int -> IndexTable -> ShowS # show :: IndexTable -> String # showList :: [IndexTable] -> ShowS # | |
Eq IndexTable Source # | |
Defined in GHC.Debug.Types.Closures (==) :: IndexTable -> IndexTable -> Bool # (/=) :: IndexTable -> IndexTable -> Bool # | |
Ord IndexTable Source # | |
Defined in GHC.Debug.Types.Closures compare :: IndexTable -> IndexTable -> Ordering # (<) :: IndexTable -> IndexTable -> Bool # (<=) :: IndexTable -> IndexTable -> Bool # (>) :: IndexTable -> IndexTable -> Bool # (>=) :: IndexTable -> IndexTable -> Bool # max :: IndexTable -> IndexTable -> IndexTable # min :: IndexTable -> IndexTable -> IndexTable # |
Traversing functions
class Hextraversable m where Source #
hextraverse :: Applicative f => (a -> f b) -> (c -> f d) -> (e -> f g) -> (h -> f i) -> (j -> f k) -> (l -> f n) -> m a c e h j l -> f (m b d g i k n) Source #
Instances
Hextraversable DebugClosure Source # | |
Defined in GHC.Debug.Types.Closures hextraverse :: Applicative f => (a -> f b) -> (c -> f d) -> (e -> f g) -> (h -> f i) -> (j -> f k) -> (l -> f n) -> DebugClosure a c e h j l -> f (DebugClosure b d g i k n) Source # | |
Hextraversable (DebugClosureWithExtra x) Source # | |
Defined in GHC.Debug.Types.Closures hextraverse :: Applicative f => (a -> f b) -> (c -> f d) -> (e -> f g) -> (h -> f i) -> (j -> f k) -> (l -> f n) -> DebugClosureWithExtra x a c e h j l -> f (DebugClosureWithExtra x b d g i k n) Source # |
hexmap :: forall a b c d e f g h i j k l t. Hextraversable t => (a -> b) -> (c -> d) -> (e -> f) -> (g -> h) -> (i -> j) -> (k -> l) -> t a c e g i k -> t b d f h j l Source #