Spec-Zone.ru › Haskell 9

GHC.Stack.CloneStack

Безопасный Haskell Нет
Язык Haskell2010

Описание

Этот модуль предоставляет интерфейс для захвата состояния стека выполнения потока в целях диагностики: cloneMyStack, cloneThreadStack.

Такой «клонированный» стек можно декодировать с помощью decode в трассировку стека, если включён -finfo-table-map.

Начиная с: base-4.17.0.0

data StackSnapshot Источник

Замороженный снимок состояния стека выполнения.

Начиная с: base-4.17.0.0

Конструкторы

StackSnapshot !StackSnapshot#

data StackEntry Источник

Представление места в исходном коде, где кадр возврата был помещён в стек. Это происходит каждый раз при вычислении анализируемого значения case ... of.

Конструкторы

StackEntry

Поля

  • functionName :: String
  • moduleName :: String
  • srcLoc :: String
  • closureType :: ClosureType
Экземпляры
Подробности экземпляров
Eq StackEntry Источник
Подробности экземпляра

Определён в GHC.Internal.Stack.Decode

Методы

(==) :: StackEntry -> StackEntry -> Bool Источник

(/=) :: StackEntry -> StackEntry -> Bool Источник

Show StackEntry Источник
Подробности экземпляра

Определён в GHC.Internal.Stack.Decode

Методы

showsPrec :: Int -> StackEntry -> ShowS Источник

show :: StackEntry -> String Источник

showList :: [StackEntry] -> ShowS Источник

cloneMyStack :: IO StackSnapshot Источник

Клонировать стек выполняющегося потока

Начиная с: base-4.17.0.0

cloneThreadStack :: ThreadId -> IO StackSnapshot Источник

Клонировать стек потока, идентифицируемого по его ThreadId

Начиная с: base-4.17.0.0

decode :: StackSnapshot -> IO [StackEntry] Источник

Декодировать StackSnapshot в трассировку стека (список StackEntry). Трассировка стека создаётся из кадров возврата с соответствующими записями InfoProvEnt. Чтобы создавать их, используйте флаг GHC -finfo-table-map. Если записей InfoProvEnt нет, возвращается пустой список.

Обратите внимание:

  • Чтобы собирать StackEntry из библиотек, их также необходимо компилировать с -finfo-table-map.
  • Из-за оптимизаций GHC (например, встраивания) трассировка стека может меняться в зависимости от параметров и версий GHC.
  • Трассировка стека пуста (по замыслу), если в стеке нет кадров возврата. (Они помещаются в стек каждый раз при вычислении анализируемого значения case ... of.)

Начиная с: 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.14.1/docs/libraries/base-4.22.0.0-66f8/GHC-Stack-CloneStack.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API