From 53cf2ee0d933ac4d95530555854a6f8d3cefc2e8 Mon Sep 17 00:00:00 2001 From: David Taylor Date: Thu, 19 Feb 2015 18:53:50 +0400 Subject: [PATCH] [gdb/ax] small "setv" fix and documentation's adjustment. gdb/doc/agentexpr.texi documents the "setv" opcode as follow: @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 is incorrect (and does not match with its description), so this patch fixes it. 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. This patch sets them both to 1, which seems better since if nothing is on the stack an error will occur. gdb/ChangeLog: * common/ax.def (setv): Fix consumed entry in setv DEFOP. gdb/doc/ChangeLog: * agentexpr.texi (Bytecode Descriptions): Fix summary line for setv. Tested on x86_64-linux. --- gdb/ChangeLog | 4 ++++ gdb/common/ax.def | 2 +- gdb/doc/ChangeLog | 4 ++++ gdb/doc/agentexpr.texi | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a51e6e119b6..5c5b75a72eb 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2015-02-19 David Taylor + + * common/ax.def (setv): Fix consumed entry in setv DEFOP. + 2015-02-18 Patrick Palka * tui/tui-io.c (tui_handle_resize_during_io): Remove this diff --git a/gdb/common/ax.def b/gdb/common/ax.def index 8b277258f76..27c97cc51ed 100644 --- a/gdb/common/ax.def +++ b/gdb/common/ax.def @@ -83,7 +83,7 @@ DEFOP (pop, 0, 0, 1, 0, 0x29) DEFOP (zero_ext, 1, 0, 1, 1, 0x2a) DEFOP (swap, 0, 0, 2, 2, 0x2b) DEFOP (getv, 2, 0, 0, 1, 0x2c) -DEFOP (setv, 2, 0, 0, 1, 0x2d) +DEFOP (setv, 2, 0, 1, 1, 0x2d) DEFOP (tracev, 2, 0, 0, 1, 0x2e) DEFOP (tracenz, 0, 0, 2, 0, 0x2f) DEFOP (trace16, 2, 0, 1, 1, 0x30) diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 576a47bb458..f7030506c9f 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,7 @@ +2015-02-19 David Taylor + + * agentexpr.texi (Bytecode Descriptions): Fix summary line for setv. + 2015-02-17 Jose E. Marchesi * gdb.texinfo (Static Probe Points): Add cindex `static probe diff --git a/gdb/doc/agentexpr.texi b/gdb/doc/agentexpr.texi index 788de1c6a58..297cd5e687f 100644 --- a/gdb/doc/agentexpr.texi +++ b/gdb/doc/agentexpr.texi @@ -461,7 +461,7 @@ alignment within the bytecode stream; thus, on machines where fetching a 16-bit on an unaligned address raises an exception, you should fetch the register number one byte at a time. -@item @code{setv} (0x2d) @var{n}: @result{} @var{v} +@item @code{setv} (0x2d) @var{n}: @var{v} @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 -- 2.30.2