From 163e6d2d75ea0c36d1ff8426387ecb39877ea06e Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Sat, 16 Jun 2001 18:57:56 +0000 Subject: [PATCH] * gdbmi.texinfo (GDB/MI Output Syntax): Add tuples and lists to syntax. (GDB/MI Draft Changes to Output Syntax): Delete section. --- gdb/mi/ChangeLog | 6 ++ gdb/mi/gdbmi.texinfo | 183 +++++-------------------------------------- 2 files changed, 25 insertions(+), 164 deletions(-) diff --git a/gdb/mi/ChangeLog b/gdb/mi/ChangeLog index 55ce6a1b545..6c1eb42fa86 100644 --- a/gdb/mi/ChangeLog +++ b/gdb/mi/ChangeLog @@ -1,3 +1,9 @@ +2001-06-07 Andrew Cagney + + * gdbmi.texinfo (GDB/MI Output Syntax): Add tuples and lists to + syntax. + (GDB/MI Draft Changes to Output Syntax): Delete section. + Mon Jun 11 17:22:25 2001 Andrew Cagney * mi-out.c: Fix typo. s/supress/suppress/. diff --git a/gdb/mi/gdbmi.texinfo b/gdb/mi/gdbmi.texinfo index 985ac71446a..e07b08929a5 100644 --- a/gdb/mi/gdbmi.texinfo +++ b/gdb/mi/gdbmi.texinfo @@ -117,7 +117,6 @@ Elena Zannoni. * GDB/MI Thread Commands:: * GDB/MI Tracepoint Commands:: * GDB/MI Variable Objects:: -* GDB/MI Draft Changes to Output Syntax:: @end menu @c When these are implemented, they should be moved to be between Misc and @@ -257,14 +256,24 @@ corresponding output for that command will also be prefixed by that same depending on the needs---this is still in development). @item @var{result} @expansion{} -@code{[ @var{string} "=" ] @var{value}} +@code{ @var{variable} "=" @var{value}} + +@item @var{variable} @expansion{} +@code{ @var{string} } @item @var{value} @expansion{} -@code{@var{const} | "@{" @var{result} ( "," @var{result} )* "@}"} +@code{ @var{const} | @var{tuple} | @var{list} } @item @var{const} @expansion{} @code{@var{c-string}} +@item @var{tuple} @expansion{} +@code{ "@{@}" | "@{" @var{result} ( "," @var{result} )* "@}" } + +@item @var{list} @expansion{} +@code{ "[]" | "[" @var{value} ( "," @var{value} )* "]" | "[" +@var{result} ( "," @var{result} )* "]" } + @item @var{stream-record} @expansion{} @code{@var{console-stream-output} | @var{target-stream-output} | @var{log-stream-output}} @@ -339,14 +348,18 @@ All the target output is prefixed by @samp{@@}. @var{log-stream-output} is output text coming from @value{GDBN}'s internals, for instance messages that should be displayed as part of an error log. All the log output is prefixed by @samp{&}. + +@item +@cindex list output in @sc{gdb/mi} +New @sc{gdb/mi} commands should only output @var{lists} containing +@var{values}. + + @end itemize @xref{GDB/MI Stream Records, , @sc{gdb/mi} Stream Records}, for more details about the various output records. -@xref{GDB/MI Draft Changes to Output Syntax, , @sc{gdb/mi} Draft Changes -to Output Syntax}, for proposed revisions to the current output syntax. - @node GDB/MI Simple Examples @subsection Simple Examples of @sc{gdb/mi} Interaction @cindex @sc{gdb/mi}, simple examples @@ -3742,164 +3755,6 @@ Update the value of the variable object @var{name} by evaluating its expression after fetching all the new values from memory or registers. A @samp{*} causes all existing variable objects to be updated. -@c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -@node GDB/MI Draft Changes to Output Syntax -@section @sc{gdb/mi} Draft Changes to Output Syntax - -@cindex draft changes to output syntax of @sc{gdb/mi} -@cindex @sc{gdb/mi}, draft changes to output syntax - -One problem identified in the existing @sc{gdb/mi} output syntax was the -difficulty in differentiating between a tuple such as: - -@example -@{number="1",type="breakpoint",disp="keep",enabled="y"@} -@end example - -where each value has a unique label, and a list such as: - -@example -@{"1","2","4"@} -@{bp="1",bp="2",bp="4"@} -@end example - -where values are un-labeled or the label is duplicated. - -What follows is a draft revision to the output specification that -addresses this problem. - -The output from @sc{gdb/mi} consists of zero or more out-of-band records -optionally followed by a single result record, the result record being -for the most recent command input. The sequence is terminated by -@samp{(@value{GDBP})}. - -Asynchronous @sc{gdb/mi} output is similar. - -Each output record directly associated with an input command is prefixed -by the input command's @code{@var{token}}. - -@table @code -@item @var{output} @expansion{} -@{ @var{out-of-band-record} @} @code{[} @var{result-record} @code{]} "@code{(@value{GDBP})}" @var{nl} - -@item @var{result-record} @expansion{} -@code{[} @var{token} @code{]} "^" @var{result-class} @{ "," @var{result} @} @var{nl} - -@item @var{out-of-band-record} @expansion{} -@var{async-record} @code{|} @var{stream-record} - -@item @var{async-record} @expansion{} -@var{exec-async-output} @code{|} @var{status-async-output} @code{|} @var{notify-async-output} - -@item @var{exec-async-output} @expansion{} -@code{[} @var{token} @code{]} "*" @var{async-output} - -@item @var{status-async-output} @expansion{} -@code{[} @var{token} @code{]} "+" @var{async-output} - -@item @var{notify-async-output} @expansion{} -@code{[} @var{token} @code{]} "=" @var{async-output} - -@item @var{async-output} @expansion{} -@var{async-class} @{ "," @var{result} @} @var{nl} - -@item @var{result-class} @expansion{} -"done" @code{|} "running" @code{|} "connected" @code{|} "error" @code{|} "exit" - -@item @var{async-class} @expansion{} -"stopped" @code{|} @emph{others depending on need as still in development} - -@item @var{result} @expansion{} -@var{string} "=" @var{value} - -@item @var{value} @expansion{} -@var{c-string} @code{|} @var{tupple} @code{|} @var{list} - -@item @var{tupple} @expansion{} -"@{@}" @code{|} "@{" @var{result} @{ "," @var{result} @} "@}" - -@item @var{list} @expansion{} -"@code{[]}" @code{|} "@code{[}" @var{value} @{ "," @var{value} @} "@code{]}" - -@item @var{string} @expansion{} -@emph{[-A-Za-z\.0-9_]*} - -@item @var{c-string} @expansion{} -@emph{See the input specification} - -@item @var{stream-record} @expansion{} -@var{console-stream-output} @code{|} @var{target-stream-output} @code{|} @var{log-stream-output} - -@item @var{console-stream-output} @expansion{} -"~" @var{c-string} - -@item @var{target-stream-output} @expansion{} -"@@" @var{c-string} - -@item @var{log-stream-output} @expansion{} -"&" @var{c-string} - -@item @var{nl} @expansion{} -CR @code{|} CR-LF - -@item @var{token} @expansion{} -"any sequence of digits" - -@end table - -In addition, the following are still being developed. - -@table @code - -@item @var{query} -This action is currently undefined. - -@end table - -Notes: - -@itemize @bullet - -@item -All output sequences end in a single line containing a period. - -@item -The @code{@var{token}} is from the corresponding request. If an execution -command is interrupted by the @code{-exec-interrupt} command, the token -associated with the `*stopped' message is the one of the original -execution command, not the one of the interrupt command. - -@item -@var{status-async-output} contains on-going status information about the -progress of a slow operation. It can be discarded. All status output is -prefixed by the prefix @samp{+}. - -@item -@var{exec-async-output} contains asynchronous state change on the target -(stopped, started, disappeared). All async output is prefixed by -the prefix @samp{*}. - -@item -@var{notify-async-output} contains supplementary information that the -client should handle (new breakpoint information). All notify output is -prefixed by the prefix @samp{=}. - -@item -@var{console-stream-output} is output that should be displayed as is, in the -console. It is the textual response to a CLI command. All the console -output is prefixed by the prefix @samp{~}. - -@item -@var{target-stream-output} is the output produced by the target program. -All the target output is prefixed by the prefix @samp{@@}. - -@item -@var{log-stream-output} is output text coming from @value{GDBN}'s -internals, for instance messages that should be displayed as part of an -error log. All the log output is prefixed by the prefix @samp{&}. - -@end itemize - @c Local variables: @c change-log-default-name: "ChangeLog-mi" @c End: -- 2.30.2