Fix documentation about rot agent expression bytecode
authorSimon Marchi <simon.marchi@ericsson.com>
Mon, 31 Jul 2017 09:22:21 +0000 (11:22 +0200)
committerSimon Marchi <simon.marchi@ericsson.com>
Mon, 31 Jul 2017 09:26:50 +0000 (11:26 +0200)
The rot agent expression bytecode rotates the three items on the top of
the stack.  It is not clear which way the rotation is.  However, the
documentation currently shows this as the effect of the instructions:

   a b c => c b a

which doesn't make sense, since the value b doesn't move.  The two
valid possibilities I see are

  a b c => b c a
  a b c => c a b

depending on which way you rotate.

When looking at the gdbserver code, the top of the stack becomes the
third item, and the next-to-top item becomes the top.  So the second
form would be the right one, since in this notation the top of the stack
is the rightmost element:

  a b c => c a b

I adjusted the symbolic description and added a bit of text to make it
more obvious.

gdb/doc/ChangeLog:

* agentexpr.texi (rot): Fix symbolic description, improve
textual description.

gdb/doc/ChangeLog
gdb/doc/agentexpr.texi

index d43ae35c00412fba19895ff9ea401b2ff33ce51e..6a3d0610a2ca1a45b6c725aec0016e7f811e8c5f 100644 (file)
@@ -1,3 +1,8 @@
+2017-07-31  Simon Marchi  <simon.marchi@ericsson.com>
+
+       * agentexpr.texi (rot): Fix symbolic description, improve
+       textual description.
+
 2017-07-26  Yao Qi  <yao.qi@linaro.org>
 
        * gdb.texinfo (Maintenance Commands): Document command
index 5668e9c1e4415acf2339702a5196025f4551017a..081e5fa68b22663f5502410c12c4b72f7368c89c 100644 (file)
@@ -396,8 +396,10 @@ is zero, this is the same as @code{dup}; if @var{n} is one, it copies
 the item under the top item, etc.  If @var{n} exceeds the number of
 items on the stack, terminate with an error.
 
-@item @code{rot} (0x33): @var{a} @var{b} @var{c} => @var{c} @var{b} @var{a}
-Rotate the top three items on the stack.
+@item @code{rot} (0x33): @var{a} @var{b} @var{c} => @var{c} @var{a} @var{b}
+Rotate the top three items on the stack.  The top item (c) becomes the third
+item, the next-to-top item (b) becomes the top item and the third item (a) from
+the top becomes the next-to-top item.
 
 @item @code{if_goto} (0x20) @var{offset}: @var{a} @result{}
 Pop an integer off the stack; if it is non-zero, branch to the given