This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] microMIPS support
On Wed, 25 Apr 2012, Eli Zaretskii wrote:
> > +@item set mips compression @var{arg}
> > +@kindex set mips compression
> > +@cindex MIPS code compression
>
> Please use lower-case "mips" in the @cindex entry as well.
It is a proper name, why? All the other places capitalise it correctly,
e.g.:
@kindex set mips mask-address
@cindex MIPS addresses, masking
and likewise for other proper names, e.g. AIX.
> > +Tell @value{GDBN} which MIPS compressed ISA encoding is used by the
> > +inferior. @value{GDBN} uses this for code disassembly and other
> > +internal interpretation purposes. This setting is only referred to
> > +when no executable has been associated with the debugging session or
> > +the executable does not provide information about the encoding it uses.
> > +Otherwise this setting is automatically updated from information
> > +provided by the executable.
> > +
> > +Possible values of @var{arg} are @samp{mips16} and @samp{micromips}.
> > +The default compressed ISA encoding is @samp{mips16}, as executables
> > +containing MIPS16 code frequently are not identified as such.
> > +
> > +This setting is ``sticky''; that is, it retains its value across
> > +debugging sessions until reset either explicitly with this command or
> > +implicitly from an executable.
> > +
> > +The compiler and/or assembler typically add symbol table annotations to
> > +identify functions compiled for the MIPS16 or microMIPS ISAs. If these
> > +function-scope annotations are present, @value{GDBN} uses them in
> > +preference to the global compressed ISA encoding setting.
>
> I would suggest to use either @acronym{ISA} or @sc{isa} (and the same
> with "MIPS16" and "MIPS"), since they will look better in print. Try
> both, produce the PDF version of the manual, and keep the one you like
> best.
Hmm, there is no existing place that uses any formatting whatever for
"MIPS" or any derivatives (see e.g. "MIPS ABI" just above), except from
@code{MIPS32} used in a single place to refer to a packet format. The
same stands for other processor architectures or names of instruction
sets. I am not trying to say that I disagree with your suggestion as is,
only asking why you think I should be making these changes to my patch?
FWIW, I can't tell the difference between text rendered with no
formatting and the @sc macro; @acronym yields a little bit smaller text
that I actually like, but as I say, it seems to make little sense to me
just to apply it here where the rest of the manual does not use it.
And if we're going to apply such a bulk change to the manual, then it
shouldn't matter if this change has been previously included here or not.
As it stands I'd prefer to keep the formatting consistent through the
manual.
> > +@subsubsection Breakpoint Kinds
> > +
> > +These breakpoint kinds are defined for the @samp{Z0} and @samp{Z1} packets.
>
> I'd prefer to have a @node here; subsections without a node are
> possible, but are harder to find.
>
> Also, a @cindex entry here would be good; think about someone who'd
> like to find this information quickly by searching the index.
I copied the layout from the "Register Packet Format" subsubsection that
immediately precedes; actually the whole section lacks any subnodes. I
now recall a similar discussion a while ago about another patch; this
change originally predates that discussion. Sorry for missing that.
However in this case the whole section would have to be updated
throughout, it does not make sense to have a subnode just for one of the
subsubsections, and revamping the whole section does not belong to this
change.
And last but not least I am not even sure if splitting this particular
section into subpages makes sense in the first place. Nesting too deep
can be frustrating too, and here you'd have to have two intermediate pages
with node lists only for just a couple lines' worth of nodes.
I think index references would better be added separately too -- these
would be "ARM Breakpoint Kinds," "MIPS Register Packet Format" and "MIPS
Breakpoint Kinds," respectively.
> OK with those changes.
Well, as you can see I have troubles to agree, sorry.
What I can do is pushing the change below on top of my microMIPS change.
Or alternatively I can split it into two changes and apply changes to the
existing pieces now and fold the microMIPS index entries into the
microMIPS change -- whichever you might find more suitable.
> > + add_setshow_enum_cmd ("compression", class_obscure, mips_compression_strings,
> > + &mips_compression_string, _("\
> > +Set the compressed ISA encoding used."), _("\
> > +Show the compressed ISA encoding used."), _("\
>
> I'd mention microMIPS in the doc strings, as in
>
> Set the compressed ISA encoding used by microMIPS binaries.
Err, that's not the point of the setting in both aspects. First, it's
not specific to microMIPS code as its very purpose is to switch between
MIPS16 and microMIPS encoding that's mutually exclusive. Second, it's
only used where no binary is available (usually selected with "file" or
suchlike), e.g. ROM contents:
(gdb) target remote foo
(gdb) x/i $pc
(gdb) stepi
etc. I agree the description is a bit lacking, but I have also decided
the verbose output from:
(gdb) help set mips compression
(gdb) help show mips compression
(which is the same as I pasted in NEWS) is good enough. Do you think it
is not?
> > Index: gdb-fsf-trunk-quilt/gdb/NEWS
> > ===================================================================
> > --- gdb-fsf-trunk-quilt.orig/gdb/NEWS 2012-04-24 20:57:21.000000000 +0100
> > +++ gdb-fsf-trunk-quilt/gdb/NEWS 2012-04-24 20:58:23.645567943 +0100
> > @@ -3,6 +3,8 @@
> >
> > *** Changes since GDB 7.4
> >
> > +* GDB now supports debugging microMIPS binaries.
> > +
> > * GDB now supports reversible debugging on ARM, it allows you to
> > debug basic ARM and THUMB instructions, and provides
> > record/replay support.
> > @@ -124,6 +126,14 @@ HP OpenVMS ia64 ia64-hp-openvms*
> >
> > * New options
> >
> > +set mips compression
> > +show mips compression
> > + Select the compressed ISA encoding used in functions that have no symbol
> > + information available. The encoding can be set to either of:
> > + mips16
> > + micromips
> > + and is updated automatically from ELF file flags if available.
> > +
>
> This is OK.
Thanks for your review.
Maciej
2012-04-26 Maciej W. Rozycki <macro@codesourcery.com>
gdb/doc/
* gdb.texinfo (Architecture-Specific Protocol Details): Add index
entries throughout.
gdb-doc-remote-arch-index.diff
Index: gdb-fsf-trunk-quilt/gdb/doc/gdb.texinfo
===================================================================
--- gdb-fsf-trunk-quilt.orig/gdb/doc/gdb.texinfo 2012-04-26 01:56:46.885629533 +0100
+++ gdb-fsf-trunk-quilt/gdb/doc/gdb.texinfo 2012-04-26 01:57:07.065637214 +0100
@@ -36507,6 +36507,8 @@ details of XML target descriptions for e
@subsection ARM
@subsubsection Breakpoint Kinds
+@cindex ARM breakpoint kinds
+@cindex breakpoint kinds, ARM
These breakpoint kinds are defined for the @samp{Z0} and @samp{Z1} packets.
@@ -36526,6 +36528,8 @@ These breakpoint kinds are defined for t
@subsection MIPS
@subsubsection Register Packet Format
+@cindex MIPS register packet format
+@cindex register packet format, MIPS
The following @code{g}/@code{G} packets have previously been defined.
In the below, some thirty-two bit registers are transferred as
@@ -36551,6 +36555,8 @@ as @code{MIPS32}.
@end table
@subsubsection Breakpoint Kinds
+@cindex MIPS breakpoint kinds
+@cindex breakpoint kinds, MIPS
These breakpoint kinds are defined for the @samp{Z0} and @samp{Z1} packets.