Show new created display
authorYao Qi <yao@codesourcery.com>
Sat, 26 Apr 2014 00:47:33 +0000 (08:47 +0800)
committerYao Qi <yao@codesourcery.com>
Mon, 5 May 2014 03:51:53 +0000 (11:51 +0800)
When I run refactored unavailable.exp, I find
command display behaves a little different on live inferior and on
examining traceframes.  In live inferior, when command "display argc"
is typed, the value of "argc" is shown.

(gdb) display argc
1: argc = 1 '\001'

however, on tfile target, when command "display argc" is typed, the
value of "argc" is not shown.

(gdb) tfind
Found trace frame 0, tracepoint 1
    at ../../../../git/gdb/testsuite/gdb.trace/unavailable.cc:198
198       i =  (int) argc + argi + argf + argd + argstruct.memberi + argarray[1];
(gdb) display argc

I also notice that on "core" target, the value of "argc" isn't shown
either.  This difference is caused by the code below in printcmd.c:display_command,

      if (from_tty && target_has_execution)
        do_one_display (new);

Looks the value of each display is shown if the target has execution.
Source code archaeology doesn't tell much about this requirement.
However, if we type command "display" then on "core" or "tfile"
target, the value of "argc" is still displayed,

for "core" target,
(gdb) display argc
(gdb) display
1: argc = 1 '\001'

for "tfile" target,
(gdb) display argc
(gdb) display
1: argc = <unavailable>

I feel that it is not necessary to have such "target has execution"
requirement to show the value of new created display.  Auto-display is
a feature to show the value of expression frequently, has nothing to
do with whether target has execution or not.  On the other hand, GDB
has the requirement for new created display, but command "display" can
still show them, this is an inconsistency, which should be fixed.

This patch is to remove the checking to target_has_execution from the
condition.

gdb:

2014-05-05  Yao Qi  <yao@codesourcery.com>

* printcmd.c (display_command): Remove the check to
target_has_execution.

gdb/ChangeLog
gdb/printcmd.c

index 4f3af0d28f4ac64321ebc1f93381656e40be9857..43aace7811f12095cb690e15801dae082cfbaf53 100644 (file)
@@ -1,3 +1,8 @@
+2014-05-05  Yao Qi  <yao@codesourcery.com>
+
+       * printcmd.c (display_command): Remove the check to
+       target_has_execution.
+
 2014-05-03  Mark Kettenis  <kettenis@gnu.org>
 
        * ppcobsd-nat.c: Include "obsd-nat.h".
index 87b14488b0cf30a52a387da1c6f071f7b97fdd84..228d4ad0f8b33c557f5345d94dc7c189750c87da 100644 (file)
@@ -1547,7 +1547,7 @@ display_command (char *arg, int from_tty)
       new->enabled_p = 1;
       display_chain = new;
 
-      if (from_tty && target_has_execution)
+      if (from_tty)
        do_one_display (new);
 
       dont_repeat ();