{-# LANGUAGE DeriveGeneric #-}
module GHC.Debugger.Runtime.Interpreter.Types where
import GHC.Generics (Generic)
import GHC.Debugger.Interface.Messages (DbgStackFrameBCOArgs)
import GHC.ByteCode.Types
import GHC.Conc.Sync
import GHC.InfoProv
import qualified GHC.Stack as Stack
data ThreadInfo ref = ThreadInfo
{ forall (ref :: * -> *). ThreadInfo ref -> ref ThreadId
threadInfoRef :: !(ref ThreadId)
, forall (ref :: * -> *). ThreadInfo ref -> Maybe String
threadInfoLabel :: !(Maybe String)
, forall (ref :: * -> *). ThreadInfo ref -> ThreadStatus
threadInfoStatus :: !ThreadStatus
}
deriving ((forall x. ThreadInfo ref -> Rep (ThreadInfo ref) x)
-> (forall x. Rep (ThreadInfo ref) x -> ThreadInfo ref)
-> Generic (ThreadInfo ref)
forall x. Rep (ThreadInfo ref) x -> ThreadInfo ref
forall x. ThreadInfo ref -> Rep (ThreadInfo ref) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (ref :: * -> *) x. Rep (ThreadInfo ref) x -> ThreadInfo ref
forall (ref :: * -> *) x. ThreadInfo ref -> Rep (ThreadInfo ref) x
$cfrom :: forall (ref :: * -> *) x. ThreadInfo ref -> Rep (ThreadInfo ref) x
from :: forall x. ThreadInfo ref -> Rep (ThreadInfo ref) x
$cto :: forall (ref :: * -> *) x. Rep (ThreadInfo ref) x -> ThreadInfo ref
to :: forall x. Rep (ThreadInfo ref) x -> ThreadInfo ref
Generic)
data StackFrameInfo ref
= StackFrameIPEInfo !InfoProv
| StackFrameAnnotation !(Maybe Stack.SrcLoc) !String
| StackFrameBreakpointInfo !InternalBreakpointId !(DbgStackFrameBCOArgs ref)
deriving ((forall x. StackFrameInfo ref -> Rep (StackFrameInfo ref) x)
-> (forall x. Rep (StackFrameInfo ref) x -> StackFrameInfo ref)
-> Generic (StackFrameInfo ref)
forall x. Rep (StackFrameInfo ref) x -> StackFrameInfo ref
forall x. StackFrameInfo ref -> Rep (StackFrameInfo ref) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (ref :: * -> *) x.
Rep (StackFrameInfo ref) x -> StackFrameInfo ref
forall (ref :: * -> *) x.
StackFrameInfo ref -> Rep (StackFrameInfo ref) x
$cfrom :: forall (ref :: * -> *) x.
StackFrameInfo ref -> Rep (StackFrameInfo ref) x
from :: forall x. StackFrameInfo ref -> Rep (StackFrameInfo ref) x
$cto :: forall (ref :: * -> *) x.
Rep (StackFrameInfo ref) x -> StackFrameInfo ref
to :: forall x. Rep (StackFrameInfo ref) x -> StackFrameInfo ref
Generic, Int -> StackFrameInfo ref -> ShowS
[StackFrameInfo ref] -> ShowS
StackFrameInfo ref -> String
(Int -> StackFrameInfo ref -> ShowS)
-> (StackFrameInfo ref -> String)
-> ([StackFrameInfo ref] -> ShowS)
-> Show (StackFrameInfo ref)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall (ref :: * -> *). Int -> StackFrameInfo ref -> ShowS
forall (ref :: * -> *). [StackFrameInfo ref] -> ShowS
forall (ref :: * -> *). StackFrameInfo ref -> String
$cshowsPrec :: forall (ref :: * -> *). Int -> StackFrameInfo ref -> ShowS
showsPrec :: Int -> StackFrameInfo ref -> ShowS
$cshow :: forall (ref :: * -> *). StackFrameInfo ref -> String
show :: StackFrameInfo ref -> String
$cshowList :: forall (ref :: * -> *). [StackFrameInfo ref] -> ShowS
showList :: [StackFrameInfo ref] -> ShowS
Show)