GHC.Stack.CCS
| Авторское право | (c) The University of Glasgow 2011 |
|---|---|
| Лицензия | see libraries/base/LICENSE |
| Сопровождающий | ghc-devs@haskell.org |
| Стабильность | внутренний |
| Переносимость | непереносимый (расширения GHC) |
| Безопасный Haskell | безопасный |
| Язык | Haskell2010 |
Содержание
Описание
Доступ к моделированию стека вызовов GHC
Начиная с: base-4.5.0.0
Стек вызовов
currentCallStack :: IO [String] Источник
Возвращает [String], представляющий текущий стек вызовов. Это может быть полезно при отладке.
Реализация использует моделирование стека вызовов, поддерживаемое профилировщиком, поэтому функция работает только в том случае, если программа была скомпилирована с -prof и содержит подходящие аннотации SCC (например, добавленные с помощью -fprof-auto). В противном случае возвращённый список, скорее всего, будет пустым или неинформативным.
Начиная с: base-4.5.0.0
whoCreated :: a -> IO [String] Источник
Получить трассировку стека, связанную с объектом.
Начиная с: base-4.5.0.0
Внутреннее устройство
data CostCentreStack Источник
Стек центров затрат из профилировщика центров затрат GHC.
data CostCentre Источник
Центр затрат из профилировщика центров затрат GHC.
getCurrentCCS :: dummy -> IO (Ptr CostCentreStack) Источник
Возвращает текущий CostCentreStack (значение равно nullPtr, если текущая программа скомпилирована без поддержки профилирования). Принимает фиктивный аргумент, который можно использовать, чтобы предотвратить вынос вызова getCurrentCCS упрощателем, что привело бы к неинформативному стеку (CAF).
getCCSOf :: a -> IO (Ptr CostCentreStack) Источник
Получить CostCentreStack, связанный с заданным значением.
clearCCS :: IO a -> IO a Источник
Выполнить вычисление с пустым стеком центров затрат. Например, интерпретатор использует это, чтобы запускать интерпретируемое вычисление без указания в стеке вызовов, что оно было запущено из GHC.
ccsCC :: Ptr CostCentreStack -> IO (Ptr CostCentre) Источник
Получить CostCentre в начале CostCentreStack.
ccsParent :: Ptr CostCentreStack -> IO (Ptr CostCentreStack) Источник
Получить хвост CostCentreStack.
ccLabel :: Ptr CostCentre -> IO CString Источник
Получить метку CostCentre.
ccModule :: Ptr CostCentre -> IO CString Источник
Получить модуль CostCentre.
ccSrcSpan :: Ptr CostCentre -> IO CString Источник
Получить диапазон исходного кода для CostCentre.
ccsToStrings :: Ptr CostCentreStack -> IO [String] Источник
Преобразовать CostCentreStack в список строк.
renderStack :: [String] -> String Источник
© 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-CCS.html