binutils-gdb/gdb/cli
Simon Marchi 3a87ae656c Use console uiout when executing breakpoint commands
As reported here

  https://sourceware.org/ml/gdb/2017-10/msg00020.html

the output of certain commands, like backtrace, doesn't appear anywhere
when it is run as a breakpoint command and when using MI.

The reason is that the current_uiout is set to the mi_ui_out while these
commands run, whereas we want the output as CLI output.  Some commands
like "print" work, because they use printf_filtered (gdb_stdout, ...)
directly, bypassing the current ui_out.

The fix I did is to force setting the cli_uiout as the current_uiout
when calling execute_control_command.  I am not sure if this is the
right way to fix the problem, comments about the approach would be
appreciated.

I enhanced gdb.mi/mi-break.exp to test the backtrace command.

Regtested on the buildbot.

gdb/ChangeLog:

	* cli/cli-script.c (execute_control_command): Rename to ...
	(execute_control_command_1): ... this.
	(execute_control_command): New function.

gdb/testsuite/ChangeLog:

	* gdb.mi/mi-break.exp (test_breakpoint_commands): Test backtrace
	as a breakpoint command.
2017-10-31 21:34:24 -04:00
..
cli-cmds.c Constify add_prefix_cmd 2017-10-11 16:21:02 -06:00
cli-cmds.h
cli-decode.c Constify add_prefix_cmd 2017-10-11 16:21:02 -06:00
cli-decode.h
cli-dump.c Constify add_prefix_cmd 2017-10-11 16:21:02 -06:00
cli-interp.c
cli-interp.h
cli-logging.c Constify add_prefix_cmd 2017-10-11 16:21:02 -06:00
cli-script.c Use console uiout when executing breakpoint commands 2017-10-31 21:34:24 -04:00
cli-script.h
cli-setshow.c
cli-setshow.h
cli-utils.c
cli-utils.h