<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>GHC.Stack</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ window.onload = function () {pageLoad();setSynopsis("mini_GHC-Stack.html");}; //]]> </script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">base-4.5.1.0: Basic libraries</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>non-portable (GHC Extensions)</td></tr><tr><th>Stability</th><td>internal</td></tr><tr><th>Maintainer</th><td>cvs-ghc@haskell.org</td></tr><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">GHC.Stack</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Call stack </a></li><li><a href="#g:2">Internals </a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Access to GHC's call-stack simulation </p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:currentCallStack">currentCallStack</a> :: <a href="System-IO.html#t:IO">IO</a> [<a href="Data-String.html#t:String">String</a>]</li><li class="src short"><a href="#v:whoCreated">whoCreated</a> :: a -> <a href="System-IO.html#t:IO">IO</a> [<a href="Data-String.html#t:String">String</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:CostCentreStack">CostCentreStack</a> </li><li class="src short"><span class="keyword">data</span> <a href="#t:CostCentre">CostCentre</a> </li><li class="src short"><a href="#v:getCurrentCCS">getCurrentCCS</a> :: dummy -> <a href="System-IO.html#t:IO">IO</a> (<a href="Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="GHC-Stack.html#t:CostCentreStack">CostCentreStack</a>)</li><li class="src short"><a href="#v:getCCSOf">getCCSOf</a> :: a -> <a href="System-IO.html#t:IO">IO</a> (<a href="Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="GHC-Stack.html#t:CostCentreStack">CostCentreStack</a>)</li><li class="src short"><a href="#v:ccsCC">ccsCC</a> :: <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="GHC-Stack.html#t:CostCentreStack">CostCentreStack</a> -> <a href="System-IO.html#t:IO">IO</a> (<a href="Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="GHC-Stack.html#t:CostCentre">CostCentre</a>)</li><li class="src short"><a href="#v:ccsParent">ccsParent</a> :: <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="GHC-Stack.html#t:CostCentreStack">CostCentreStack</a> -> <a href="System-IO.html#t:IO">IO</a> (<a href="Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="GHC-Stack.html#t:CostCentreStack">CostCentreStack</a>)</li><li class="src short"><a href="#v:ccLabel">ccLabel</a> :: <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="GHC-Stack.html#t:CostCentre">CostCentre</a> -> <a href="System-IO.html#t:IO">IO</a> <a href="Foreign-C-String.html#t:CString">CString</a></li><li class="src short"><a href="#v:ccModule">ccModule</a> :: <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="GHC-Stack.html#t:CostCentre">CostCentre</a> -> <a href="System-IO.html#t:IO">IO</a> <a href="Foreign-C-String.html#t:CString">CString</a></li><li class="src short"><a href="#v:ccSrcSpan">ccSrcSpan</a> :: <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="GHC-Stack.html#t:CostCentre">CostCentre</a> -> <a href="System-IO.html#t:IO">IO</a> <a href="Foreign-C-String.html#t:CString">CString</a></li><li class="src short"><a href="#v:ccsToStrings">ccsToStrings</a> :: <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="GHC-Stack.html#t:CostCentreStack">CostCentreStack</a> -> <a href="System-IO.html#t:IO">IO</a> [<a href="Data-String.html#t:String">String</a>]</li><li class="src short"><a href="#v:renderStack">renderStack</a> :: [<a href="Data-String.html#t:String">String</a>] -> <a href="Data-String.html#t:String">String</a></li></ul></div><div id="interface"><h1 id="g:1">Call stack </h1><div class="top"><p class="src"><a name="v:currentCallStack" class="def">currentCallStack</a> :: <a href="System-IO.html#t:IO">IO</a> [<a href="Data-String.html#t:String">String</a>]</p><div class="doc"><p>returns a '[String]' representing the current call stack. This can be useful for debugging. </p><p>The implementation uses the call-stack simulation maintined by the profiler, so it only works if the program was compiled with <code>-prof</code> and contains suitable SCC annotations (e.g. by using <code>-fprof-auto</code>). Otherwise, the list returned is likely to be empty or uninformative. </p></div></div><div class="top"><p class="src"><a name="v:whoCreated" class="def">whoCreated</a> :: a -> <a href="System-IO.html#t:IO">IO</a> [<a href="Data-String.html#t:String">String</a>]</p></div><h1 id="g:2">Internals </h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:CostCentreStack" class="def">CostCentreStack</a> </p></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:CostCentre" class="def">CostCentre</a> </p></div><div class="top"><p class="src"><a name="v:getCurrentCCS" class="def">getCurrentCCS</a> :: dummy -> <a href="System-IO.html#t:IO">IO</a> (<a href="Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="GHC-Stack.html#t:CostCentreStack">CostCentreStack</a>)</p></div><div class="top"><p class="src"><a name="v:getCCSOf" class="def">getCCSOf</a> :: a -> <a href="System-IO.html#t:IO">IO</a> (<a href="Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="GHC-Stack.html#t:CostCentreStack">CostCentreStack</a>)</p></div><div class="top"><p class="src"><a name="v:ccsCC" class="def">ccsCC</a> :: <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="GHC-Stack.html#t:CostCentreStack">CostCentreStack</a> -> <a href="System-IO.html#t:IO">IO</a> (<a href="Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="GHC-Stack.html#t:CostCentre">CostCentre</a>)</p></div><div class="top"><p class="src"><a name="v:ccsParent" class="def">ccsParent</a> :: <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="GHC-Stack.html#t:CostCentreStack">CostCentreStack</a> -> <a href="System-IO.html#t:IO">IO</a> (<a href="Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="GHC-Stack.html#t:CostCentreStack">CostCentreStack</a>)</p></div><div class="top"><p class="src"><a name="v:ccLabel" class="def">ccLabel</a> :: <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="GHC-Stack.html#t:CostCentre">CostCentre</a> -> <a href="System-IO.html#t:IO">IO</a> <a href="Foreign-C-String.html#t:CString">CString</a></p></div><div class="top"><p class="src"><a name="v:ccModule" class="def">ccModule</a> :: <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="GHC-Stack.html#t:CostCentre">CostCentre</a> -> <a href="System-IO.html#t:IO">IO</a> <a href="Foreign-C-String.html#t:CString">CString</a></p></div><div class="top"><p class="src"><a name="v:ccSrcSpan" class="def">ccSrcSpan</a> :: <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="GHC-Stack.html#t:CostCentre">CostCentre</a> -> <a href="System-IO.html#t:IO">IO</a> <a href="Foreign-C-String.html#t:CString">CString</a></p></div><div class="top"><p class="src"><a name="v:ccsToStrings" class="def">ccsToStrings</a> :: <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="GHC-Stack.html#t:CostCentreStack">CostCentreStack</a> -> <a href="System-IO.html#t:IO">IO</a> [<a href="Data-String.html#t:String">String</a>]</p></div><div class="top"><p class="src"><a name="v:renderStack" class="def">renderStack</a> :: [<a href="Data-String.html#t:String">String</a>] -> <a href="Data-String.html#t:String">String</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>