This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] GDB/MI documentation


Nick Roberts wrote:

> I think it would be quite easy to read GDB/MI General Design and still not
> understand the overall purpose of GDB/MI. ÂIt dives straight into detail about
> notifications which appear to be buried much later in the node called GDB/MI
> Async Records.

It might not be ideal.

> 
> Perhaps there could be some background mentioning annotations as a predecessor and
> saying `something like':
> 
> The problem with annotations is that it marks up output intended for a human
> to read. ÂThat means that the syntax might change at any time. ÂIn contrast,
> MI is more formal output intended for parsing by computers, that should
> provide a more robust interface.

I suspect that 99% of the readers have no idea what annotations are. Therefore,
it is best to stress MI differences from CLI.

> Here are just a few basic changes that preserve the content.
> 
> Nick                      http://www.inet.net.nz/~nickrob
> 
> 
> 2009-05-13 ÂNick Roberts Â<nickrob@snap.net.nz>
> 
> * gdb.texinfo (GDB/MI General Design): Break up into four nodes.
> Simplify English.
> 
> 
> *** gdb.texinfoÂ13 May 2009 17:43:30 +1200ÂÂÂÂÂÂ1.591
> --- gdb.texinfoÂ13 May 2009 21:54:04 +1200
> *************** may repeat one or more times.
> *** 19788,19804 ****
> @cindex GDB/MI General Design

> 
> Interaction of a @sc{GDB/MI} frontend with @value{GDBN} involves three
> ! parts---commands sent to @value{GDBN}, responses to those commands
> and notifications. ÂEach command results in exactly one response,
> indicating either successful completion of the command, or an error.
> ! For the commands that do not resume the target, the response contains the
> ! requested information. ÂFor the commands that resume the target, the
> response only indicates whether the target was successfully resumed.
> ! Notifications is the mechanism for reporting changes in the state of the
> target, or in @value{GDBN} state, that cannot conveniently be associated with
> a command and reported as part of that command response.
> 
> ! The important examples of notifications are:
> @itemize @bullet
> 
> @item
> --- 19788,19805 ----
> @cindex GDB/MI General Design
> 
> Interaction of a @sc{GDB/MI} frontend with @value{GDBN} involves three
> ! parts: commands sent to @value{GDBN}; responses to those commands;
> and notifications. Â

I am not sure that ';' use here is appropriate or that there's any problem
with original text.

> Each command results in exactly one response, 
> indicating either successful completion of the command, or an error.
> ! For commands that do not resume the target, the response contains the
> ! requested information, while for those that do resume the target, the
> response only indicates whether the target was successfully resumed.
> ! Notifications are used for reporting changes in the state of the
> target, or in @value{GDBN} state, that cannot conveniently be associated with
> a command and reported as part of that command response.
> 
> ! Important types of notifications are:
> !
> @itemize @bullet
> 
> @item
> *************** processed. ÂTherefore, whenever an MI co
> *** 19834,19839 ****
> --- 19835,19848 ----
> we recommend that the frontend refreshes all the information shown in
> the user interface.
> 
> +
> + @menu
> + * Context management::
> + * Asynchronous command execution and non-stop mode::
> + * Thread groups::
> + @end menu
> +
> + @node Context management
> @subsection Context management
> 
> In most cases when @value{GDBN} accesses the target, this access is
> *************** all subsequent commands. ÂNo frontend is
> *** 19886,19891 ****
> --- 19895,19901 ----
> right, so it is suggested to just always pass the @samp{--thread} and
> @samp{--frame} options.
> 
> + @node Asynchronous command execution and non-stop mode
> @subsection Asynchronous command execution and non-stop mode
> 
> On some targets, @value{GDBN} is capable of processing MI commands
> *************** highly target dependent. ÂHowever, the t
> *** 19921,19926 ****
> --- 19931,19937 ----
> @code{-exec-interrupt}, to stop a thread, and @code{-thread-info},
> to find the state of a thread, will always work.
> 
> + @node Thread groups
> @subsection Thread groups
> @value{GDBN} may be used to debug several processes at the same time.
> On some platfroms, @value{GDBN} may support debugging of several

The remaining edits appear to be pure english and/or texinfo, and I
have no comment on those. I home this "menu" thing does not appear
in either HTML or PDF?

- Volodya



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]