binutils-gdb/gdb/cli
Pedro Alves 2f9d54cfce make -gdb-exit call disconnect_tracing too, and don't lose history if the target errors on "quit"
Gareth mentions in PR gdb/15275:

 "The MI '-gdb-exit' command mi_cmd_gdb_exit() never calls disconnect_tracing()
 and therefore exits correctly."

It should, so to get out of tfind mode, as quit may detach instead of
kill, and we don't want to confuse the memory/register accesses
etc. of the detach process.  So we should push down the disconnect
tracing bits at least to quit_force.  But we can't as is, as that
would swallow the error thrown by answering "no" to:

  Trace is running but will stop on detach; detach anyway? (y or n)

So to address that, we split disconnect_tracing in two.  One part that
does the query, and another part that does the rest, and we make
quit_force call the latter.

Looking at quit_force, it does several things, some of which are a bit
independent of the others.  It first kills/detaches, and then writes
history, and then runs the final cleanups.  It seems better to me to
do each of these things even if the previous thing throws.  E.g., as
is, if something throws while detaching, then we skip writing history.

Tested on x86_64 Fedora 17.

gdb/
2013-04-10  Pedro Alves  <palves@redhat.com>

	* cli/cli-cmds.c (quit_command): Call query_if_trace_running
	instead of disconnect_tracing.
	* infcmd.c (detach_command, disconnect_command): Call
	query_if_trace_running.  Adjust.
	* top.c: Include "tracepoint.h".
	(quit_target): Delete.  Contents moved ...
	(quit_force): ... here.  Wrap each stage of teardown in
	TRY_CATCH.  Call disconnect_tracing before detaching.
2013-04-10 14:10:35 +00:00
..
cli-cmds.c make -gdb-exit call disconnect_tracing too, and don't lose history if the target errors on "quit" 2013-04-10 14:10:35 +00:00
cli-cmds.h Consistent use of (C) after "Copyright". 2013-02-12 19:03:57 +00:00
cli-decode.c Constify strings in tracepoint.c, lookup_cmd and the completers. 2013-03-13 18:34:55 +00:00
cli-decode.h Constify strings in tracepoint.c, lookup_cmd and the completers. 2013-03-13 18:34:55 +00:00
cli-dump.c Consistent use of (C) after "Copyright". 2013-02-12 19:03:57 +00:00
cli-dump.h Consistent use of (C) after "Copyright". 2013-02-12 19:03:57 +00:00
cli-interp.c Consistent use of (C) after "Copyright". 2013-02-12 19:03:57 +00:00
cli-logging.c Consistent use of (C) after "Copyright". 2013-02-12 19:03:57 +00:00
cli-script.c Constify strings in tracepoint.c, lookup_cmd and the completers. 2013-03-13 18:34:55 +00:00
cli-script.h Constify strings in tracepoint.c, lookup_cmd and the completers. 2013-03-13 18:34:55 +00:00
cli-setshow.c Subject: Fix range validation of integer commands with "unlimited". 2013-03-22 20:25:40 +00:00
cli-setshow.h New commands "mt set per-command {space,time,symtab} {on,off}". 2013-03-21 17:37:30 +00:00
cli-utils.c * ada-lang.c (ada_read_renaming_var_value): Pass const 2013-03-12 17:39:45 +00:00
cli-utils.h * ada-lang.c (ada_read_renaming_var_value): Pass const 2013-03-12 17:39:45 +00:00