GHC.Stack.CloneStack
| Safe Haskell | None |
|---|---|
| Язык | Haskell2010 |
Описание
Этот модуль предоставляет интерфейс для захвата состояния стека выполнения потока для целей диагностики: cloneMyStack, cloneThreadStack.
Такой "клонированный" стек может быть декодирован с помощью decode в трассировку стека, при условии, что -finfo-table-map включено.
С версии: base-4.17.0.0
data StackSnapshot Source
Замороженное изображение состояния стека выполнения.
С версии: base-4.17.0.0
Конструкторы
| StackSnapshot !StackSnapshot# |
data StackEntry Source
Представление расположения источника, где кадр возврата был помещён в стек. Это происходит каждый раз, когда case ... of scrutinee оценивается.
Конструкторы
| StackEntry | |
Поля
| |
Примеры использования
| Show StackEntry Source | |
Определено в GHC.Internal.Stack.CloneStack МетодыshowsPrec :: Целое число -> StackEntry -> ShowS Source show :: StackEntry -> Строка Source showList :: [StackEntry] -> ShowS Source | |
| Eq StackEntry Source | |
Определено в GHC.Internal.Stack.CloneStack Методы(==) :: StackEntry -> StackEntry -> Булево Source (/=) :: StackEntry -> StackEntry -> Булево Source | |
cloneMyStack :: IO StackSnapshot Source
Клонирует стек потока выполнения.
С версии: base-4.17.0.0
cloneThreadStack :: ThreadId -> IO StackSnapshot Source
Клонирует стек потока, идентифицированного по его ThreadId.
С версии: base-4.17.0.0
decode :: StackSnapshot -> IO [StackEntry] Source
Декодирует StackSnapshot в трассировку стека (список StackEntry). Трассировка стека создаётся из кадров возврата с соответствующими InfoProvEnt записями. Для их генерации используйте флаг GHC -finfo-table-map. Если нет InfoProvEnt записей, возвращается пустой список.
Примечание:
- Для сбора
StackEntryиз библиотек, эти библиотеки также должны быть скомпилированы с-finfo-table-map. - Из-за оптимизаций GHC (например, встраивания) трассировка стека может меняться при различных параметрах и версиях GHC.
- Трассировка стека пуста (по умолчанию), если в стеке нет кадров возврата. (Эти кадры помещаются в стек каждый раз, когда оценивается
case ... ofscrutinee.)
С версии: 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