Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Yao Qi <yao@codesourcery.com>
To: <gdb-patches@sourceware.org>
Subject: [RFC] remove set_tfile_traceframe and cur_traceframe_number
Date: Wed, 27 Jun 2012 13:48:00 -0000	[thread overview]
Message-ID: <1340804875-23979-1-git-send-email-yao@codesourcery.com> (raw)

Hi,
I can't see the necessity to use function set_tfile_traceframe and
variable cur_traceframe_number.  IIUC, both set_tfile_traceframe
and cur_traceframe_number are equivalent to remote.c:set_remote_traceframe
and remote.c:remote_traceframe_number.  set_remote_traceframe
and remote_traceframe_number are used to switch between traceframe
and live inferior in a lazy mode.  However, this requirement doesn't
exists in tfile, because GDB only reads from trace file.  This is
the reason I propose to remove them.  Regression tested on native
and gdbserver on x86_64-linux.  OK to apply?

gdb:

2012-06-27  Yao Qi  <yao@codesourcery.com>

	* tracepoint.c (set_tfile_traceframe): Removed.
	(tfile_trace_find, tfile_fetch_registers): Update callers.
	(tfile_xfer_partial, tfile_get_trace_state_variable_value): Likewise.
	Remove cur_traceframe_number.
	(tfile_open, tfile_trace_find): Likewise.
---
 gdb/tracepoint.c |   40 ++--------------------------------------
 1 files changed, 2 insertions(+), 38 deletions(-)

diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c
index 4445256..398ba6a 100644
--- a/gdb/tracepoint.c
+++ b/gdb/tracepoint.c
@@ -3631,7 +3631,6 @@ char *trace_filename;
 int trace_fd = -1;
 off_t trace_frames_offset;
 off_t cur_offset;
-int cur_traceframe_number;
 int cur_data_size;
 int trace_regblock_size;
 
@@ -3724,8 +3723,6 @@ tfile_open (char *filename, int from_tty)
   ts->disconnected_tracing = 0;
   ts->circular_buffer = 0;
 
-  cur_traceframe_number = -1;
-
   TRY_CATCH (ex, RETURN_MASK_ALL)
     {
       /* Read through a section of newline-terminated lines that
@@ -4225,28 +4222,6 @@ tfile_get_traceframe_address (off_t tframe_offset)
   return addr;
 }
 
-/* Make tfile's selected traceframe match GDB's selected
-   traceframe.  */
-
-static void
-set_tfile_traceframe (void)
-{
-  int newnum;
-
-  if (cur_traceframe_number == get_traceframe_number ())
-    return;
-
-  /* Avoid recursion, tfile_trace_find calls us again.  */
-  cur_traceframe_number = get_traceframe_number ();
-
-  newnum = target_trace_find (tfind_number,
-			      get_traceframe_number (), 0, 0, NULL);
-
-  /* Should not happen.  If it does, all bets are off.  */
-  if (newnum != get_traceframe_number ())
-    warning (_("could not set tfile's traceframe"));
-}
-
 /* Given a type of search and some parameters, scan the collection of
    traceframes in the file looking for a match.  When found, return
    both the traceframe and tracepoint number, otherwise -1 for
@@ -4263,12 +4238,7 @@ tfile_trace_find (enum trace_find_type type, int num,
   off_t offset, tframe_offset;
   ULONGEST tfaddr;
 
-  /* Lookups other than by absolute frame number depend on the current
-     trace selected, so make sure it is correct on the tfile end
-     first.  */
-  if (type != tfind_number)
-    set_tfile_traceframe ();
-  else if (num == -1)
+  if (num == -1)
     {
       if (tpp)
         *tpp = -1;
@@ -4327,7 +4297,7 @@ tfile_trace_find (enum trace_find_type type, int num,
 	    *tpp = tpnum;
 	  cur_offset = offset;
 	  cur_data_size = data_size;
-	  cur_traceframe_number = tfnum;
+
 	  return tfnum;
 	}
       /* Skip past the traceframe's data.  */
@@ -4442,8 +4412,6 @@ tfile_fetch_registers (struct target_ops *ops,
   if (!trace_regblock_size)
     return;
 
-  set_tfile_traceframe ();
-
   regs = alloca (trace_regblock_size);
 
   if (traceframe_find_block_type ('R', 0) >= 0)
@@ -4527,8 +4495,6 @@ tfile_xfer_partial (struct target_ops *ops, enum target_object object,
   if (readbuf == NULL)
     error (_("tfile_xfer_partial: trace file is read-only"));
 
-  set_tfile_traceframe ();
-
  if (traceframe_number != -1)
     {
       int pos = 0;
@@ -4614,8 +4580,6 @@ tfile_get_trace_state_variable_value (int tsvnum, LONGEST *val)
 {
   int pos;
 
-  set_tfile_traceframe ();
-
   pos = 0;
   while ((pos = traceframe_find_block_type ('V', pos)) >= 0)
     {
-- 
1.7.7.6


             reply	other threads:[~2012-06-27 13:48 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-27 13:48 Yao Qi [this message]
2012-07-05 13:28 ` [ping]: " Yao Qi
2012-07-23 16:07 ` Yao Qi
2012-07-23 16:39   ` Pedro Alves
2012-07-27  8:11     ` Yao Qi
2012-07-27 14:09 ` Pedro Alves

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1340804875-23979-1-git-send-email-yao@codesourcery.com \
    --to=yao@codesourcery.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox