A frozen snapshot of the state of an execution stack.
Moduleghc-internal-9.1003.0Haskell2010
GHC.Internal.Stack.CloneStack
This module exposes an interface for capturing the state of a thread's execution stack for diagnostics purposes: cloneMyStack, cloneThreadStack.
Such a "cloned" stack can be decoded with decode to a stack trace, given
that the -finfo-table-map is enabled.
- 2 types
- 4 values
- Packageghc-internal-9.1003.0
- Exports6
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceCloneStack.hs
Representation for the source location where a return frame was pushed on the stack.
This happens every time when a case ... of scrutinee is evaluated.
Constructors
Instances2Eq, Show
Eq StackEntryDefined in ghc-internal-9.1003.0 · GHC.Internal.Stack.CloneStackShow StackEntryDefined in ghc-internal-9.1003.0 · GHC.Internal.Stack.CloneStack
Clone the stack of the executing thread
Clone the stack of a thread identified by its ThreadId
Decode a StackSnapshot to a stacktrace (a list of StackEntry).
The stack trace is created from return frames with according InfoProvEnt
entries. To generate them, use the GHC flag -finfo-table-map. If there are
no InfoProvEnt entries, an empty list is returned.
Please note:
To gather StackEntry from libraries, these have to be compiled with
-finfo-table-map, too.Due to optimizations by GHC (e.g. inlining) the stacktrace may change with different GHC parameters and versions.
The stack trace is empty (by design) if there are no return frames on the stack. (These are pushed every time when a
case ... ofscrutinee is evaluated.)