Safe Haskell | None |
---|---|
Language | Haskell2010 |
Debugging helpers
Synopsis
- pprint :: Show a => a -> IO ()
- pshow :: Show a => a -> String
- ptrace :: Show a => a -> a
- traceWith :: (a -> String) -> a -> a
- debugLevel :: Int
- ptraceAt :: Show a => Int -> String -> a -> a
- dbg0 :: Show a => String -> a -> a
- dbgExit :: Show a => String -> a -> a
- dbg1 :: Show a => String -> a -> a
- dbg2 :: Show a => String -> a -> a
- dbg3 :: Show a => String -> a -> a
- dbg4 :: Show a => String -> a -> a
- dbg5 :: Show a => String -> a -> a
- dbg6 :: Show a => String -> a -> a
- dbg7 :: Show a => String -> a -> a
- dbg8 :: Show a => String -> a -> a
- dbg9 :: Show a => String -> a -> a
- ptraceAtIO :: (MonadIO m, Show a) => Int -> String -> a -> m ()
- dbg0IO :: (MonadIO m, Show a) => String -> a -> m ()
- dbg1IO :: (MonadIO m, Show a) => String -> a -> m ()
- dbg2IO :: (MonadIO m, Show a) => String -> a -> m ()
- dbg3IO :: (MonadIO m, Show a) => String -> a -> m ()
- dbg4IO :: (MonadIO m, Show a) => String -> a -> m ()
- dbg5IO :: (MonadIO m, Show a) => String -> a -> m ()
- dbg6IO :: (MonadIO m, Show a) => String -> a -> m ()
- dbg7IO :: (MonadIO m, Show a) => String -> a -> m ()
- dbg8IO :: (MonadIO m, Show a) => String -> a -> m ()
- dbg9IO :: (MonadIO m, Show a) => String -> a -> m ()
- plog :: Show a => String -> a -> a
- plogAt :: Show a => Int -> String -> a -> a
- traceParse :: String -> TextParser m ()
- dbgparse :: Int -> String -> TextParser m ()
- module Debug.Trace
Documentation
traceWith :: (a -> String) -> a -> a Source #
Trace (print to stderr) a showable value using a custom show function.
debugLevel :: Int Source #
Global debug level, which controls the verbosity of debug output
on the console. The default is 0 meaning no debug output. The
--debug
command line flag sets it to 1, or --debug=N
sets it to
a higher value (note: not --debug N
for some reason). This uses
unsafePerformIO and can be accessed from anywhere and before normal
command-line processing. When running with :main in GHCI, you must
touch and reload this module to see the effect of a new --debug option.
After command-line processing, it is also available as the debug_
field of CliOpts
.
{--}
{--}
ptraceAt :: Show a => Int -> String -> a -> a Source #
Pretty-print a label and a showable value to the console if the global debug level is at or above the specified level. At level 0, always prints. Otherwise, uses unsafePerformIO.
dbg0 :: Show a => String -> a -> a Source #
Pretty-print a message and the showable value to the console, then return it.
dbgExit :: Show a => String -> a -> a Source #
Like dbg0, but also exit the program. Uses unsafePerformIO.
dbg1 :: Show a => String -> a -> a Source #
Pretty-print a message and the showable value to the console when the global debug level is >= 1, then return it. Uses unsafePerformIO.
ptraceAtIO :: (MonadIO m, Show a) => Int -> String -> a -> m () Source #
Like ptraceAt, but convenient to insert in an IO monad (plus convenience aliases). XXX These have a bug; they should use traceIO, not trace, otherwise GHC can occasionally over-optimise (cf lpaste a few days ago where it killed/blocked a child thread).
plog :: Show a => String -> a -> a Source #
Log a message and a pretty-printed showable value to ./debug.log, then return it.
plogAt :: Show a => Int -> String -> a -> a Source #
Log a message and a pretty-printed showable value to ./debug.log, if the global debug level is at or above the specified level. At level 0, always logs. Otherwise, uses unsafePerformIO.
traceParse :: String -> TextParser m () Source #
Print the provided label (if non-null) and current parser state (position and next input) to the console. (See also megaparsec's dbg.)
module Debug.Trace