{-# LANGUAGE MagicHash #-}
{-# LANGUAGE UnliftedFFITypes #-}
module GHCi.Debugger
(
rts_enableStopNextBreakpoint
, rts_enableStopNextBreakpointAll
, rts_disableStopNextBreakpoint
, rts_disableStopNextBreakpointAll
, rts_enableStopAfterReturn
, rts_disableStopAfterReturn
, exceptionFlag
, BreakpointCallback
, breakPointIOAction
) where
import Prelude
import GHC.Base (ThreadId#, Addr#, Int#)
import Foreign.C (CInt)
import Foreign (StablePtr, Ptr)
import GHCi.RemoteTypes (HValue)
foreign import ccall unsafe "rts_enableStopNextBreakpoint"
rts_enableStopNextBreakpoint :: ThreadId# -> IO ()
foreign import ccall unsafe "rts_disableStopNextBreakpoint"
rts_disableStopNextBreakpoint :: ThreadId# -> IO ()
foreign import ccall unsafe "rts_enableStopNextBreakpointAll"
rts_enableStopNextBreakpointAll :: IO ()
foreign import ccall unsafe "rts_disableStopNextBreakpointAll"
rts_disableStopNextBreakpointAll :: IO ()
foreign import ccall unsafe "rts_enableStopAfterReturn"
rts_enableStopAfterReturn :: ThreadId# -> IO ()
foreign import ccall unsafe "rts_disableStopAfterReturn"
rts_disableStopAfterReturn :: ThreadId# -> IO ()
foreign import ccall "&rts_stop_on_exception" exceptionFlag :: Ptr CInt
type BreakpointCallback
= Addr#
-> Addr#
-> Int#
-> Addr#
-> Addr#
-> Int#
-> Bool
-> HValue
-> IO ()
foreign import ccall "&rts_breakpoint_io_action"
breakPointIOAction :: Ptr (StablePtr BreakpointCallback)