From: nickrob@snap.net.nz (Nick Roberts)
To: gdb-patches@sourceware.org
Subject: [PATCH] GDB/MI documentation
Date: Wed, 13 May 2009 10:36:00 -0000 [thread overview]
Message-ID: <18954.41627.111280.24736@totara.tehura.co.nz> (raw)
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.
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.
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. 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
next reply other threads:[~2009-05-13 10:36 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-13 10:36 Nick Roberts [this message]
2009-05-13 11:59 ` Vladimir Prus
2009-05-13 18:03 ` Eli Zaretskii
2009-05-13 18:05 ` Eli Zaretskii
2009-05-14 6:51 ` Nick Roberts
2009-05-14 15:22 ` Vladimir Prus
2009-05-14 22:07 ` Nick Roberts
2009-05-14 19:02 ` Eli Zaretskii
2009-05-14 21:50 ` Nick Roberts
2009-05-15 7:00 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=18954.41627.111280.24736@totara.tehura.co.nz \
--to=nickrob@snap.net.nz \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox