binutils-gdb/gdb/testsuite/gdb.mi
Tom Tromey 4c7d57e72e Don't show "display"s twice in MI
If you run "gdb -i=mi2" and set a "display", then when "next"ing the
displays will be shown twice:

    ~"1: x = 23\n"
    ~"7\t  printf(\"%d\\n\", x);\n"
    ~"1: x = 23\n"
    *stopped,reason="end-stepping-range",frame={addr="0x0000000000400565",func="main",args=[],file="q.c",fullname="/tmp/q.c",line="7"},thread-id="1",stopped-threads="all",core="1"

The immediate cause of this is this code in mi_on_normal_stop_1:

      print_stop_event (mi_uiout);

      console_interp = interp_lookup (current_ui, INTERP_CONSOLE);
      if (should_print_stop_to_console (console_interp, tp))
	print_stop_event (mi->cli_uiout);

... which obviously prints the stop twice.

However, I think the first call to print_stop_event is intended just
to emit the MI *stopped notification, which explains why the source
line does not show up two times.

This patch fixes the bug by changing print_stop_event to only call
do_displays for non-MI-like ui-outs.

Tested on x86-64 Fedora 29.

gdb/ChangeLog
2019-03-19  Tom Tromey  <tromey@adacore.com>

	* mi/mi-interp.c (mi_on_normal_stop_1): Only show displays once.
	* infrun.h (print_stop_event): Add "displays" parameter.
	* infrun.c (print_stop_event): Add "displays" parameter.

gdb/testsuite/ChangeLog
2019-03-19  Tom Tromey  <tromey@adacore.com>

	* gdb.mi/mi2-cli-display.c: New file.
	* gdb.mi/mi2-cli-display.exp: New file.
2019-03-19 12:16:48 -06:00
..
ChangeLog-1999-2003
array.f Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
basics.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
dw2-ref-missing-frame-func.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
dw2-ref-missing-frame-main.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
dw2-ref-missing-frame.S Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
dw2-ref-missing-frame.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
gdb669.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
gdb680.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
gdb701.c
gdb701.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
gdb792.cc
gdb792.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
gdb2549.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
list-thread-groups-available.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
list-thread-groups-available.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
list-thread-groups-no-inferior.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-async-run.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-async-run.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-async.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-basics.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-break.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-breakpoint-changed.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-breakpoint-multiple-locations.cc Fix MI output for multi-location breakpoints 2019-03-13 15:14:36 -04:00
mi-breakpoint-multiple-locations.exp Fix MI output for multi-location breakpoints 2019-03-13 15:14:36 -04:00
mi-catch-load-so.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-catch-load.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-catch-load.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-cli.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-cmd-error.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-cmd-param-changed.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-condbreak-call-thr-state-mt.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-condbreak-call-thr-state-st.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-condbreak-call-thr-state.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-condbreak-call-thr-state.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-console.c
mi-console.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-detach.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-disassemble.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-dprintf-pending.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-dprintf-pending.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-dprintf-pendshr.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-dprintf.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-dprintf.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-editing.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-eval.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-exec-run.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-exit-code.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-exit-code.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-file-transfer.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-file.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-fill-memory.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-frame-regs.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-fullname-deleted.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-hack-cli.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-i-cmd.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-info-os.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-inheritance-syntax-error.cc
mi-inheritance-syntax-error.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-language.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-linespec-err-cp.cc Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-linespec-err-cp.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-logging.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-memory-changed.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-nonstop-exit.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-nonstop.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-ns-stale-regcache.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-nsintrall.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-nsmoribund.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-nsthrexec.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-pending.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-pending.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-pendshr.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-pendshr2.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-pthreads.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-read-memory.c
mi-read-memory.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-record-changed.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-reg-undefined.S Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-reg-undefined.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-reg-undefined.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-regs.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-return.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-reverse.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-simplerun.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-solib.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-stack.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-stack.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-start.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-start.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-stepi.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-stepn.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-stepn.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-syn-frame.c
mi-syn-frame.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-threads-interrupt.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-threads-interrupt.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-undefined-cmd.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-until.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-var-block.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-var-child-f.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-var-child.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-var-child.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-var-cmd.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-var-cp.cc Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-var-cp.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-var-create-rtti.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-var-create-rtti.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-var-display.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-var-invalidate.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-var-list-children-invalid-grandchild.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-var-list-children-invalid-grandchild.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-var-rtti.cc Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-var-rtti.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-vla-c99.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-vla-fortran.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-watch-nonstop.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi-watch.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi2-amd64-entry-value.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi2-amd64-entry-value.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi2-amd64-entry-value.s Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi2-cli-display.c Don't show "display"s twice in MI 2019-03-19 12:16:48 -06:00
mi2-cli-display.exp Don't show "display"s twice in MI 2019-03-19 12:16:48 -06:00
mi2-prompt.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
mi2-var-child.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
new-ui-mi-sync.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
new-ui-mi-sync.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
non-stop-exit.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
non-stop.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
ns-stale-regcache.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
nsintrall.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
nsmoribund.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
nsthrexec.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
pending.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
pendshr1.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
pendshr2.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
pr11022.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
pr11022.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
pthreads.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
solib-lib.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
solib-main.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
testcmds
until.c
user-selected-context-sync.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
user-selected-context-sync.exp Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
var-cmd.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
vla.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
vla.f90 Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
watch-nonstop.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00