| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
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.
Since: base-4.17.0.0
data StackSnapshot Source
A frozen snapshot of the state of an execution stack.
Since: base-4.17.0.0
| StackSnapshot !StackSnapshot# |
data StackEntry Source
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.
| StackEntry | |
Fields
| |
| Show StackEntry Source | |
Defined in GHC.Internal.Stack.CloneStack MethodsshowsPrec :: Int -> StackEntry -> ShowS Source show :: StackEntry -> String Source showList :: [StackEntry] -> ShowS Source | |
| Eq StackEntry Source | |
Defined in GHC.Internal.Stack.CloneStack Methods(==) :: StackEntry -> StackEntry -> Bool Source (/=) :: StackEntry -> StackEntry -> Bool Source | |
cloneMyStack :: IO StackSnapshot Source
Clone the stack of the executing thread
Since: base-4.17.0.0
cloneThreadStack :: ThreadId -> IO StackSnapshot Source
Clone the stack of a thread identified by its ThreadId
Since: base-4.17.0.0
decode :: StackSnapshot -> IO [StackEntry] Source
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:
StackEntry from libraries, these have to be compiled with -finfo-table-map, too.case ... of scrutinee is evaluated.)Since: base-4.17.0.0
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/base-4.21.0.0-8e62/GHC-Stack-CloneStack.html