From aef525cb15cdf95759c015cf237d6337407aa47a Mon Sep 17 00:00:00 2001 From: Yao Qi Date: Fri, 7 Jun 2013 00:19:36 +0000 Subject: [PATCH] gdb/ * tracepoint.c (start_tracing): Move code to ... (trace_reset_local_state): ... here. New. (disconnect_tracing): Don't call set_current_traceframe, set_tracepoint_num, and set_traceframe_context. Call trace_reset_local_state instead. (tfile_close): Call trace_reset_local_state. * ctf.c (ctf_close): Likewise. * remote.c (remote_close): Likewise. * tracepoint.h (trace_reset_local_state): Declare. --- gdb/ChangeLog | 12 ++++++++++++ gdb/ctf.c | 2 ++ gdb/remote.c | 2 ++ gdb/tracepoint.c | 21 ++++++++++++++------- gdb/tracepoint.h | 1 + 5 files changed, 31 insertions(+), 7 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 102054bb451..b8a5b85d1b5 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,15 @@ +2013-06-07 Yao Qi + + * tracepoint.c (start_tracing): Move code to ... + (trace_reset_local_state): ... here. New. + (disconnect_tracing): Don't call set_current_traceframe, + set_tracepoint_num, and set_traceframe_context. Call + trace_reset_local_state instead. + (tfile_close): Call trace_reset_local_state. + * ctf.c (ctf_close): Likewise. + * remote.c (remote_close): Likewise. + * tracepoint.h (trace_reset_local_state): Declare. + 2013-06-06 Doug Evans * dwarf2read.c: Whitespace fixes for DWP file format documentation, diff --git a/gdb/ctf.c b/gdb/ctf.c index 13df0898658..278f9503107 100644 --- a/gdb/ctf.c +++ b/gdb/ctf.c @@ -1212,6 +1212,8 @@ ctf_close (void) ctf_destroy (); xfree (trace_dirname); trace_dirname = NULL; + + trace_reset_local_state (); } /* This is the implementation of target_ops method to_files_info. diff --git a/gdb/remote.c b/gdb/remote.c index 24d10f26cc0..080d04859c9 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -3054,6 +3054,8 @@ remote_close (void) delete_async_event_handler (&remote_async_inferior_event_token); remote_notif_unregister_async_event_handler (); + + trace_reset_local_state (); } /* Query the remote side for the text, data and bss offsets. */ diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c index d6ff051b388..5bad3e8c74e 100644 --- a/gdb/tracepoint.c +++ b/gdb/tracepoint.c @@ -1700,6 +1700,16 @@ process_tracepoint_on_disconnect (void) " GDB is disconnected\n")); } +/* Reset local state of tracing. */ + +void +trace_reset_local_state (void) +{ + set_traceframe_num (-1); + set_tracepoint_num (-1); + set_traceframe_context (NULL); + clear_traceframe_info (); +} void start_tracing (char *notes) @@ -1822,11 +1832,8 @@ start_tracing (char *notes) target_trace_start (); /* Reset our local state. */ - set_traceframe_num (-1); - set_tracepoint_num (-1); - set_traceframe_context (NULL); + trace_reset_local_state (); current_trace_status()->running = 1; - clear_traceframe_info (); } /* The tstart command requests the target to start a new trace run. @@ -2234,9 +2241,7 @@ disconnect_tracing (void) confusing upon reconnection. Just use these calls instead of full tfind_1 behavior because we're in the middle of detaching, and there's no point to updating current stack frame etc. */ - set_current_traceframe (-1); - set_tracepoint_num (-1); - set_traceframe_context (NULL); + trace_reset_local_state (); } /* Worker function for the various flavors of the tfind command. */ @@ -4657,6 +4662,8 @@ tfile_close (void) trace_fd = -1; xfree (trace_filename); trace_filename = NULL; + + trace_reset_local_state (); } static void diff --git a/gdb/tracepoint.h b/gdb/tracepoint.h index d7ebc16e57a..3b09ca8964c 100644 --- a/gdb/tracepoint.h +++ b/gdb/tracepoint.h @@ -389,6 +389,7 @@ extern void merge_uploaded_trace_state_variables (struct uploaded_tsv **utsvp); extern void query_if_trace_running (int from_tty); extern void disconnect_tracing (void); +extern void trace_reset_local_state (void); extern void start_tracing (char *notes); extern void stop_tracing (char *notes); -- 2.30.2