Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Yao Qi <yao@codesourcery.com>
To: Pedro Alves <palves@redhat.com>
Cc: <gdb-patches@sourceware.org>
Subject: Re: [PATCH 1/6] Add a field 'installed' for each location of tracepoint.
Date: Sun, 09 Dec 2012 12:49:00 -0000	[thread overview]
Message-ID: <50C488D0.8010609@codesourcery.com> (raw)
In-Reply-To: <50C10675.3000405@redhat.com>

On 12/07/2012 04:56 AM, Pedro Alves wrote:
> This should be documented in the manual and NEWS, both the CLI changes, and
> the MI change (this patch adds the "installed" field to various MI things).
> 

The new version includes changes to manual and NEWS.

>> >Of course, the breakpoint related MI notifications are changed as
>> >well.
>> >
>> >gdb:
>> >
>> >2012-12-03  Yao Qi<yao@codesourcery.com>
>> >
>> >	* breakpoint.c (print_one_breakpoint_location): Add field
>> >	'installed' for each location of a tracepoint.
>> >---
>> >  gdb/breakpoint.c |   11 +++++++++++
>> >  1 files changed, 11 insertions(+), 0 deletions(-)
>> >
>> >diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
>> >index 53944a6..40d2edd 100644
>> >--- a/gdb/breakpoint.c
>> >+++ b/gdb/breakpoint.c
>> >@@ -6123,6 +6123,17 @@ print_one_breakpoint_location (struct breakpoint *b,
>> >  	  ui_out_field_int (uiout, "pass", t->pass_count);
>> >  	  ui_out_text (uiout, " \n");
>> >  	}
>> >+
>> >+      if (!header_of_multiple)
>> >+	{
>> >+	  annotate_field (11);
>> >+	  ui_out_text (uiout, "\tinstalled ");
>> >+	  /* LOC is NULL means the tracepoint is still pending, set
>> >+	     field 'installed' 'n'.  */
>> >+	  ui_out_field_string (uiout, "installed",
>> >+			       loc ? (loc->inserted ? "y" : "n") : "n");
>> >+	  ui_out_text (uiout, " \n");
> Not sure about the pending case.  Can you show how does that look like?
> Why not just display nothing in that case?  How does the MI output look
> like in the pending case?
> 

In the new version, we don't display it for neither pending tracepoint
nor pending locations.  In CLI, the output of 'info tracepoint' will be
like this,

info trace
Num     Type           Disp Enb Address    What^M
2       tracepoint     keep y   0x080485b1 in main at gdb.trace/change-loc.c:29
        installed on target
4       tracepoint     keep y   <MULTIPLE>
        collect $eip
4.1                         y     0x0804859c in func4 at gdb.trace/change-loc.h:35
        installed on target
4.2                         y     0xb7ffc480 in func4 at gdb.trace/change-loc.h:35
        installed on target
4.3                         y     <PENDING>  set_tracepoint

I'll post patch 6/6 once the output here is OK to us.

-- 
Yao (齐尧)

gdb:

2012-12-09  Yao Qi  <yao@codesourcery.com>

	* breakpoint.c (print_one_breakpoint_location): Display the
	state of 'installed' of each non-pending location of a tracepoint
	in both CLI and MI.
	* NEWS: Mention the change for CLI and MI.

gdb/doc:

2012-12-09  Yao Qi  <yao@codesourcery.com>

	* gdb.texinfo (Listing Tracepoints): Move the example into the
	item about 'passcount'.
	New item and example about 'installed on target' output.
	(GDB/MI Breakpoint Commands): Doc about 'installed field.
---
 gdb/NEWS            |    6 ++++++
 gdb/breakpoint.c    |   19 +++++++++++++++++++
 gdb/doc/gdb.texinfo |   29 +++++++++++++++++++++++------
 3 files changed, 48 insertions(+), 6 deletions(-)

diff --git a/gdb/NEWS b/gdb/NEWS
index 3b09e5f..dd8b1f4 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -38,6 +38,9 @@
 
 * The command 'forward-search' can now be abbreviated as 'fo'.
 
+* The command 'info tracepoints' can now display 'installed on target'
+  or 'not installed on target' for each non-pending location of tracepoint.
+
 * New configure options
 
 --enable-libmcheck/--disable-libmcheck
@@ -99,6 +102,9 @@ show print type typedefs
      has been requested.
   ** New optional parameter COUNT added to the "-data-write-memory-bytes" 
      command, to allow pattern filling of memory areas.
+  ** The response to breakpoint commands and breakpoint async records will
+     include an "installed" field containing a boolean state about each
+     non-pending tracepoint location is whether installed on target or not.
 
 * GDB now supports the "mini debuginfo" section, .gnu_debugdata.
   You must have the LZMA library available when configuring GDB for this
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 94874ec..5d5033f 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -6123,6 +6123,25 @@ print_one_breakpoint_location (struct breakpoint *b,
 	  ui_out_field_int (uiout, "pass", t->pass_count);
 	  ui_out_text (uiout, " \n");
 	}
+
+      /* Don't display it when tracepoint or tracepoint location is
+	 pending.   */
+      if (!header_of_multiple && loc != NULL && !loc->shlib_disabled)
+	{
+	  annotate_field (11);
+
+	  if (ui_out_is_mi_like_p (uiout))
+	    ui_out_field_string (uiout, "installed",
+				 loc->inserted ? "y" : "n");
+	  else
+	    {
+	      if (loc->inserted)
+		ui_out_text (uiout, "\t");
+	      else
+		ui_out_text (uiout, "\tnot ");
+	      ui_out_text (uiout, "installed on target\n");
+	    }
+	}
     }
 
   if (ui_out_is_mi_like_p (uiout) && !part_of_multiple)
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 9ffdb77..cd2f76a 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -11476,8 +11476,6 @@ tracing:
 @itemize @bullet
 @item
 its passcount as given by the @code{passcount @var{n}} command
-@end itemize
-
 @smallexample
 (@value{GDBP}) @b{info trace}
 Num     Type           Disp Enb Address    What
@@ -11491,6 +11489,23 @@ Num     Type           Disp Enb Address    What
 (@value{GDBP})
 @end smallexample
 
+@item
+the state about installed on target of each location
+@smallexample
+(@value{GDBP}) @b{info trace}
+Num     Type           Disp Enb Address    What
+4       tracepoint     keep y   <MULTIPLE>
+        collect $eip
+4.1                         y     0x0804859c in func4 at change-loc.h:35
+        installed on target
+4.2                         y     0xb7ffc480 in func4 at change-loc.h:35
+        installed on target
+4.3                         y     <PENDING>  set_tracepoint
+5       tracepoint     keep y   0x080485b1 in foo at change-loc.c:29
+        not installed on target
+@end smallexample
+@end itemize
+
 @noindent
 This command can be abbreviated @code{info tp}.
 @end table
@@ -28441,17 +28456,19 @@ The result is in the form:
 ^done,bkpt=@{number="@var{number}",type="@var{type}",disp="del"|"keep",
 enabled="y"|"n",addr="@var{hex}",func="@var{funcname}",file="@var{filename}",
 fullname="@var{full_filename}",line="@var{lineno}",[thread="@var{threadno},]
-times="@var{times}"@}
+times="@var{times}"[,installed="@var{installed}"]@}
 @end smallexample
 
 @noindent
 where @var{number} is the @value{GDBN} number for this breakpoint,
 @var{funcname} is the name of the function where the breakpoint was
 inserted, @var{filename} is the name of the source file which contains
-this function, @var{lineno} is the source line number within that file
-and @var{times} the number of times that the breakpoint has been hit
+this function, @var{lineno} is the source line number within that file,
+@var{times} the number of times that the breakpoint has been hit
 (always 0 for -break-insert but may be greater for -break-info or -break-list
-which use the same output).
+which use the same output), and @var{installed}, which is an optional
+boolean, is about the state of each non-pending tracepoint location
+installed on target or not.
 
 Note: this format is open to change.
 @c An out-of-band breakpoint instead of part of the result?
-- 
1.7.7.6



  parent reply	other threads:[~2012-12-09 12:49 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-04  4:45 [PATCH 0/6] Add a new field 'installed' when reporting tracepoint Yao Qi
2012-12-04  4:45 ` [PATCH 3/6] Notify breakpoint-modified when tracepoints are downloaded Yao Qi
2012-12-06 20:56   ` Pedro Alves
2012-12-04  4:45 ` [PATCH 2/6] Iterate over ALL_TRACEPOINTS first Yao Qi
2012-12-06 20:56   ` Pedro Alves
2012-12-04  4:45 ` [PATCH 6/6] Update test cases for 'installed' field Yao Qi
2012-12-07 12:42   ` Pedro Alves
2012-12-13 12:07     ` Yao Qi
2012-12-13 17:13       ` Pedro Alves
2012-12-04  4:45 ` [PATCH 5/6] Test tracepoints are installed or not Yao Qi
2012-12-07 12:39   ` Pedro Alves
2012-12-07 13:55     ` Yao Qi
2012-12-07 14:20       ` Pedro Alves
2012-12-09 12:53         ` Yao Qi
2012-12-11 17:53           ` Pedro Alves
2012-12-12  2:59             ` Yao Qi
2012-12-12 12:24               ` Pedro Alves
2012-12-12 15:00                 ` Yao Qi
2012-12-04  4:45 ` [PATCH 1/6] Add a field 'installed' for each location of tracepoint Yao Qi
2012-12-06 20:56   ` Pedro Alves
2012-12-07 13:49     ` Yao Qi
2012-12-09 12:49     ` Yao Qi [this message]
2012-12-09 16:57       ` Eli Zaretskii
2012-12-11 17:26       ` Pedro Alves
2012-12-12  1:54         ` Yao Qi
2012-12-12 12:03           ` Pedro Alves
2012-12-04  4:45 ` [PATCH 4/6] Notify breakpoint-modified when uploaded tracepoints are merged Yao Qi
2012-12-06 20:57   ` Pedro Alves
2012-12-06 20:55 ` [PATCH 0/6] Add a new field 'installed' when reporting tracepoint 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=50C488D0.8010609@codesourcery.com \
    --to=yao@codesourcery.com \
    --cc=gdb-patches@sourceware.org \
    --cc=palves@redhat.com \
    /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