two agent expression nits (one line each)

David Taylor dtaylor@emc.com
Thu Sep 11 17:54:00 GMT 2014


In gdb/doc/agentexpr.texi you''ll find the text:

    @item @code{setv} (0x2d) @var{n}: @result{} @var{v}
    Set trace state variable number @var{n} to the value found on the top
    of the stack.  The stack is unchanged, so that the value is readily
    available if the assignment is part of a larger expression.  The
    handling of @var{n} is as described for @code{getv}.

The @item line and the following text do no agree with one another.  I'm
guessing that the text is correct, in which case this line:

    @item @code{setv} (0x2d) @var{n}: @result{} @var{v}

should be changed to this:

    @item @code{setv} (0x2d) @var{n}: @var{v} @result{} @var{v}

Additionally, in gdb/common/ax.def we find the line:

    DEFOP (setv, 2, 0, 0, 1, 0x2d)

>From the comment earlier in the file:

       Each line is of the form:

       DEFOP (name, size, data_size, consumed, produced, opcode)
[...]
       CONSUMED is the number of stack elements consumed.
       PRODUCED is the number of stack elements produced.

which is saying that nothing is consumed and one item is produced.  Both
should be 0 or both should be 1.  Setting them both to 1 seems better
since if nothing is on the stack an error will occur.  So, it should be
changed to:

    DEFOP (setv, 2, 0, 1, 1, 0x2d)

David



More information about the Gdb-patches mailing list