This is the mail archive of the
gdb-patches@sourceware.cygnus.com
mailing list for the GDB project.
RFA: list which remote protocol commands are required
- To: gdb-patches at sourceware dot cygnus dot com
- Subject: RFA: list which remote protocol commands are required
- From: jtc at redback dot com (J.T. Conklin)
- Date: 20 Mar 2000 20:05:14 -0800
- Reply-To: jtc at redback dot com
I submit the enclosed patch for approval. The existing documentation
labled some remote protocol commands as optional, while in fact most
commands are. This patch removes the "optional" tag from the table
of commands, and explicitly lists the required commands.
--jtc
2000-03-20 J.T. Conklin <jtc@redback.com>
* gdb.texinfo: Clarify which remote debug protocol commands are
required and which are optional.
Index: gdb.texinfo
===================================================================
RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v
retrieving revision 1.4
diff -c -r1.4 gdb.texinfo
*** gdb.texinfo 2000/03/20 22:51:36 1.4
--- gdb.texinfo 2000/03/21 03:59:16
***************
*** 8835,8840 ****
--- 8835,8844 ----
protocol. A newer @value{GDBN} can tell if a packet is supported based
on that response.
+ A stub is required to support the @samp{g}, @samp{G}, @samp{m}, @samp{M},
+ @samp{c}, and @samp{s} @var{command}s. All other @var{command}s are
+ optional.
+
Below is a complete list of all currently defined @var{command}s and
their corresponding response @var{data}:
***************
*** 8843,8849 ****
@tab Request
@tab Description
! @item extended ops @emph{(optional)}
@tab @code{!}
@tab
Use the extended remote protocol. Sticky---only needs to be set once.
--- 8847,8853 ----
@tab Request
@tab Description
! @item extended ops
@tab @code{!}
@tab
Use the extended remote protocol. Sticky---only needs to be set once.
***************
*** 8869,8875 ****
@tab @code{a}
@tab Reserved for future use
! @item set program arguments @strong{(reserved)} @emph{(optional)}
@tab @code{A}@var{arglen}@code{,}@var{argnum}@code{,}@var{arg}@code{,...}
@tab
Initialized @samp{argv[]} array passed into program. @var{arglen}
--- 8873,8879 ----
@tab @code{a}
@tab Reserved for future use
! @item set program arguments @strong{(reserved)}
@tab @code{A}@var{arglen}@code{,}@var{argnum}@code{,}@var{arg}@code{,...}
@tab
Initialized @samp{argv[]} array passed into program. @var{arglen}
***************
*** 8909,8915 ****
@tab reply
@tab see below
! @item continue with signal @emph{(optional)}
@tab @code{C}@var{sig}@code{;}@var{addr}
@tab
Continue with signal @var{sig} (hex signal number). If
--- 8913,8919 ----
@tab reply
@tab see below
! @item continue with signal
@tab @code{C}@var{sig}@code{;}@var{addr}
@tab
Continue with signal @var{sig} (hex signal number). If
***************
*** 8923,8929 ****
@tab
toggle debug flag.
! @item detach @emph{(optional)}
@tab @code{D}
@tab
Detach @value{GDBN} from the remote system. Sent to the remote target before
--- 8927,8933 ----
@tab
toggle debug flag.
! @item detach
@tab @code{D}
@tab
Detach @value{GDBN} from the remote system. Sent to the remote target before
***************
*** 8980,8986 ****
@tab @code{h}
@tab Reserved for future use
! @item set thread @emph{(optional)}
@tab @code{H}@var{c}@var{t...}
@tab
Set thread for subsequent operations (@samp{m}, @samp{M}, @samp{g},
--- 8984,8990 ----
@tab @code{h}
@tab Reserved for future use
! @item set thread
@tab @code{H}@var{c}@var{t...}
@tab
Set thread for subsequent operations (@samp{m}, @samp{M}, @samp{g},
***************
*** 9009,9022 ****
@c selected, sets the registers of the register block of
@c that thread; otherwise sets current registers.
! @item cycle step @strong{(draft)} @emph{(optional)}
@tab @code{i}@var{addr}@code{,}@var{nnn}
@tab
Step the remote target by a single clock cycle. If @code{,}@var{nnn} is
present, cycle step @var{nnn} cycles. If @var{addr} is present, cycle
step starting at that address.
! @item signal then cycle step @strong{(reserved)} @emph{(optional)}
@tab @code{I}
@tab
See @samp{i} and @samp{S} for likely syntax and semantics.
--- 9013,9026 ----
@c selected, sets the registers of the register block of
@c that thread; otherwise sets current registers.
! @item cycle step @strong{(draft)}
@tab @code{i}@var{addr}@code{,}@var{nnn}
@tab
Step the remote target by a single clock cycle. If @code{,}@var{nnn} is
present, cycle step @var{nnn} cycles. If @var{addr} is present, cycle
step starting at that address.
! @item signal then cycle step @strong{(reserved)}
@tab @code{I}
@tab
See @samp{i} and @samp{S} for likely syntax and semantics.
***************
*** 9029,9035 ****
@tab @code{J}
@tab Reserved for future use
! @item kill request @emph{(optional)}
@tab @code{k}
@tab
FIXME: @emph{There is no description of how operate when a specific
--- 9033,9039 ----
@tab @code{J}
@tab Reserved for future use
! @item kill request
@tab @code{k}
@tab
FIXME: @emph{There is no description of how operate when a specific
***************
*** 9099,9105 ****
@tab return @var{r....}
@tab The hex encoded value of the register in target byte order.
! @item write reg @emph{(optional)}
@tab @code{P}@var{n...}@code{=}@var{r...}
@tab
Write register @var{n...} with value @var{r...}, which contains two hex
--- 9103,9109 ----
@tab return @var{r....}
@tab The hex encoded value of the register in target byte order.
! @item write reg
@tab @code{P}@var{n...}@code{=}@var{r...}
@tab
Write register @var{n...} with value @var{r...}, which contains two hex
***************
*** 9111,9117 ****
@tab reply @code{E}@var{NN}
@tab for an error
! @item general query @emph{(optional)}
@tab @code{q}@var{query}
@tab
Request info about @var{query}. In general @value{GDBN} @var{query}'s
--- 9115,9121 ----
@tab reply @code{E}@var{NN}
@tab for an error
! @item general query
@tab @code{q}@var{query}
@tab
Request info about @var{query}. In general @value{GDBN} @var{query}'s
***************
*** 9129,9135 ****
@tab reply @samp{}
@tab Indicating an unrecognized @var{query}.
! @item general set @emph{(optional)}
@tab @code{Q}@var{var}@code{=}@var{val}
@tab
Set value of @var{var} to @var{val}. See @samp{q} for a discussing of
--- 9133,9139 ----
@tab reply @samp{}
@tab Indicating an unrecognized @var{query}.
! @item general set
@tab @code{Q}@var{var}@code{=}@var{val}
@tab
Set value of @var{var} to @var{val}. See @samp{q} for a discussing of
***************
*** 9140,9153 ****
@tab
Reset the entire system.
! @item remote restart @emph{(optional)}
@tab @code{R}@var{XX}
@tab
Restart the remote server. @var{XX} while needed has no clear
definition. FIXME: @emph{An example interaction explaining how this
packet is used in extended-remote mode is needed}.
! @item step @emph{(optional)}
@tab @code{s}@var{addr}
@tab
@var{addr} is address to resume. If @var{addr} is omitted, resume at
--- 9144,9157 ----
@tab
Reset the entire system.
! @item remote restart
@tab @code{R}@var{XX}
@tab
Restart the remote server. @var{XX} while needed has no clear
definition. FIXME: @emph{An example interaction explaining how this
packet is used in extended-remote mode is needed}.
! @item step
@tab @code{s}@var{addr}
@tab
@var{addr} is address to resume. If @var{addr} is omitted, resume at
***************
*** 9156,9162 ****
@tab reply
@tab see below
! @item step with signal @emph{(optional)}
@tab @code{S}@var{sig}@code{;}@var{addr}
@tab
Like @samp{C} but step not continue.
--- 9160,9166 ----
@tab reply
@tab see below
! @item step with signal
@tab @code{S}@var{sig}@code{;}@var{addr}
@tab
Like @samp{C} but step not continue.
***************
*** 9164,9177 ****
@tab reply
@tab see below
! @item search @emph{(optional)}
@tab @code{t}@var{addr}@code{:}@var{PP}@code{,}@var{MM}
@tab
Search backwards starting at address @var{addr} for a match with pattern
@var{PP} and mask @var{MM}. @var{PP} and @var{MM} are 4
bytes. @var{addr} must be at least 3 digits.
! @item thread alive @emph{(optional)}
@tab @code{T}@var{XX}
@tab Find out if the thread XX is alive.
@item
--- 9168,9181 ----
@tab reply
@tab see below
! @item search
@tab @code{t}@var{addr}@code{:}@var{PP}@code{,}@var{MM}
@tab
Search backwards starting at address @var{addr} for a match with pattern
@var{PP} and mask @var{MM}. @var{PP} and @var{MM} are 4
bytes. @var{addr} must be at least 3 digits.
! @item thread alive
@tab @code{T}@var{XX}
@tab Find out if the thread XX is alive.
@item
***************
*** 9209,9215 ****
@tab @code{x}
@tab Reserved for future use
! @item write mem (binary) @emph{(optional)}
@tab @code{X}@var{addr}@code{,}@var{length}@var{:}@var{XX...}
@tab
@var{addr} is address, @var{length} is number of bytes, @var{XX...} is
--- 9213,9219 ----
@tab @code{x}
@tab Reserved for future use
! @item write mem (binary)
@tab @code{X}@var{addr}@code{,}@var{length}@var{:}@var{XX...}
@tab
@var{addr} is address, @var{length} is number of bytes, @var{XX...} is
***************
*** 9230,9241 ****
@tab @code{Y}
@tab Reserved for future use
! @item remove break or watchpoint @strong{(draft)} @emph{(optional)}
@tab @code{z}@var{t}@code{,}@var{addr}@code{,}@var{length}
@tab
See @samp{Z}.
! @item insert break or watchpoint @strong{(draft)} @emph{(optional)}
@tab @code{Z}@var{t}@code{,}@var{addr}@code{,}@var{length}
@tab
@var{t} is type: @samp{0} - software breakpoint, @samp{1} - hardware
--- 9234,9245 ----
@tab @code{Y}
@tab Reserved for future use
! @item remove break or watchpoint @strong{(draft)}
@tab @code{z}@var{t}@code{,}@var{addr}@code{,}@var{length}
@tab
See @samp{Z}.
! @item insert break or watchpoint @strong{(draft)}
@tab @code{Z}@var{t}@code{,}@var{addr}@code{,}@var{length}
@tab
@var{t} is type: @samp{0} - software breakpoint, @samp{1} - hardware
--
J.T. Conklin
RedBack Networks