Safe Haskell | Safe-Inferred |
---|
Data structures, parsers and printers for GDB/MI communication.
This is a low-level module not intended to be used by clients of this library.
Use Commands
to create commands and receive responses as well as notifications via IO
.
On-the-wire types reflect the GDB/MI grammar. Please consult the cited GDB documentation for details. The simplified types provide a simple abstraction over the on-the-wire types.
- data Command
- type Token = Int
- type Operation = String
- data Option = Option Parameter (Maybe Parameter)
- data Parameter
- data Output = Output [OutOfBandRecord] (Maybe ResultRecord)
- data ResultRecord = ResultRecord (Maybe Token) ResultClass [Result]
- data OutOfBandRecord
- data AsyncRecord
- data ExecAsyncOutput = ExecAsyncOutput (Maybe Token) AsyncOutput
- data StatusAsyncOutput = StatusAsyncOutput (Maybe Token) AsyncOutput
- data NotifyAsyncOutput = NotifyAsyncOutput (Maybe Token) AsyncOutput
- data AsyncOutput = AsyncOutput AsyncClass [Result]
- data ResultClass
- = RCDone
- | RCRunning
- | RCConnected
- | RCError
- | RCExit
- data AsyncClass
- data Result = Result {
- resVariable :: Variable
- resValue :: Value
- type Variable = String
- data Value
- type Const = CString
- data Tuple = Tuple {
- tupleResults :: [Result]
- data List
- = EmptyList
- | ValueList [Value]
- | ResultList [Result]
- data StreamRecord
- data ConsoleStreamOutput = ConsoleStreamOutput CString
- data TargetStreamOutput = TargetStreamOutput CString
- data LogStreamOutput = LogStreamOutput CString
- type CString = String
- data Response = Response {
- respClass :: ResultClass
- respResults :: [Result]
- data Notification = Notification {}
- data NotificationClass
- data Stream = Stream StreamClass String
- data StreamClass
- render_command :: Command -> String
- parse_output :: String -> Output
- output_response :: Output -> Maybe Response
- output_notification :: Output -> [Notification]
- output_stream :: Output -> [Stream]
- class GetToken a where
- asConst :: Value -> Maybe Const
- asTuple :: Value -> Maybe Tuple
- asList :: Value -> Maybe List
- parameter_valid :: Parameter -> Bool
On-the-Wire Types
Input
Output
data ResultRecord Source
data OutOfBandRecord Source
data AsyncRecord Source
data ExecAsyncOutput Source
data StatusAsyncOutput Source
data NotifyAsyncOutput Source
data AsyncClass Source
data StreamRecord Source
Simplified
Response | The |
|
data Notification Source
Notification | Simplification of the |
data NotificationClass Source
Stream StreamClass String | Simplifcation of the |
data StreamClass Source
Functions
render_command :: Command -> StringSource
Generate the on-the-wire string suitable to be sent to GDB.
parse_output :: String -> OutputSource
Turn an GDB output string to an Output
value.
output_response :: Output -> Maybe ResponseSource
Extract the response from an output, if existent.
output_notification :: Output -> [Notification]Source
Extract the (possible empty) list of notifications of an output.
output_stream :: Output -> [Stream]Source
Extract the (possibly) empty list of notifications of an output.
Return the token of the given object, if existent.
parameter_valid :: Parameter -> BoolSource
Verify that the given parameter is either a c-string or a "non-blank-sequence". See http://sourceware.org/gdb/current/onlinedocs/gdb/GDB_002fMI-Input-Syntax.html