public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Hui Zhu <teawater@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: gdb-patches@sourceware.org, brobecker@adacore.com
Subject: Re: [RFA/DOC] record pic
Date: Tue, 24 Aug 2010 03:19:00 -0000	[thread overview]
Message-ID: <AANLkTik0x8fWuFTdnym2M1XaXBxOhVDTjhudB65iKPSh@mail.gmail.com> (raw)
In-Reply-To: <83hbilnv4n.fsf@gnu.org>

Thanke Eli,

On Tue, Aug 24, 2010 at 00:36, Eli Zaretskii <eliz@gnu.org> wrote:
>> From: Hui Zhu <teawater@gmail.com>
>> Date: Mon, 23 Aug 2010 16:25:39 +0800
>> Cc: gdb-patches@sourceware.org, Joel Brobecker <brobecker@adacore.com>
>>
>> I make a new patch.  Please help me review it.
>
> Thanks.  It's closer, but still not there.
>
>> +set record pic hide-nofunction on|off
>> +  The each line or each function will be show in vcg file as a node.
>> +  Sometime, we don't want show it.  So hide the nodes.
>> +  Set or show whether `record pic' hides the nodes without function
>> +  name.
>
> Rephrase:
>
>  Normally each line and each function will show up as a node in the
>  VCG file.  This command does not save nodes that correspond to
>  functions.
>
> Btw, you didn't answer my question what is a "node without function
> name".  Because of this, I'm not sure the above text I suggest is
> correct.  Please explain more about this.

It like the line, if this address doesn't have the debug message, it
will not have the function name.

>
>> +set record pic hide-nosource on|off
>> +  Set or show whether `record pic' hides the nodes without source line
>> +  debug message.                                           ^^^^^^^^^^^
>     ^^^^^^^^^^^^^
> "source line debug info"
>
>> +@kindex record pic
>> +@item record pic @var{filename}
>> +Save the execution log to a VCG file @file{@var{filename}}.
>> +Default filename is @file{gdb_record_@var{process_id}.vcg},
>> +where @var{process_id} is the process ID of the inferior.
>
> Please add here:
>
>  @cindex VCG file
>  VCG (Visualization of Compiler Graphs) is a format for textual and
>  readable specification of graph structures.  It is used for
>  visualizing large graphs generated by programs.
>
>> +Vcgviewer (http://code.google.com/p/vcgviewer/) or xvcg can
>> +open this file.
>
> Please rephrase:
>
>  Various programs such as @uref{http://code.google.com/p/vcgviewer/,
>  VCGViewer} or @uref{http://rw4.cs.uni-sb.de/users/sander/html/gsvcg1.html,
>  xvcg} can display these files on graphics terminals.
>
>> +@kindex set record pic type
>> +@item set record pic type @var{type}
>> +Set the type of nodes that @code{record pic} will save.
>> +
>> +When @var{type} is set to @code{line} (the default), each node of vcg
>                                                                     ^^^
> "VCG" (upper case).  Also "a VCG file", add "a".
>
>> +file that @code{record pic} saved will be a line of the inferior.
>
>  Each node of a VCG file saved by @code{record pic} will represent a
>  line in the inferior's code.
>
>> +When @var{type} is set to @code{function}, each node of vcg file that
>
> Again, "a VCG file}
>
>> +@code{record pic} saved will be a function of the inferior.
>                           ^^^^^^^^^^^^^^^^^^
> "will represent a function".
>
> Do you mean that all the lines belonging to a function will be
> represented by a single node?

No.  Each line will be a special note.

>
>> +@item set record pic hide-nofunction
>> +The each line or each function will be show in vcg file as a node.
>> +Sometime, we don't want show it.  So hide the nodes.
>
> I still don't understand what this means.  Will only the function
> nodes hidden?  If so, do you mean that the saved nodes will represent
> lines, but there will be no nodes that represent functions?  How is
> this different from saying "set record pic line"?

For line and function.  The node will be hide when:
                  /* Get the start addr of function.  */
                  addr = get_pc_function_start (addr);
                  if (addr == 0)
                    {
                      if (record_pic_hide_nofunction)
                        goto exec;
When we try to get the function start address.
              function = lookup_minimal_symbol_by_pc (addr);
              if (!function && record_pic_hide_nofunction)
                goto exec;
And the find the function's name.

>
>> +@item set record pic hide-nosource
>> +Set whether @code{record pic} hides the nodes without source line
>> +debug message.
>   ^^^^^^^^^^^^^
> "debug information"
>
>> +If ON (the default), @code{record pic} will hide the nodes that have
>> +the same address node in vcg file.  And @code{record pic} will show
>> +the execute count number of this node in format @code{c:number}
>
>  If ON (the default), @code{record pic} will represent nodes that
>  have the same address as a single node with a count.  The count will
>  be in the form @code{c:@var{count}}.
>
>> +If OFF, @code{record pic} will show the nodes that have the same
>> +address node in vcg file.  And @code{record pic} will show the
>> +instruction number in format @code{i:number} that
>> +@value{record goto} support.
>
> Please replace the last sentence with this:
>
>  Each node will show its instruction count in the form
>  @code{i:@var{num}}.
>
> Is this i:NUM display shown always, or is it shown only when nodes
> with identical addresses are shown individually, as opposed to
> collapsed into a single node?

It always display.

>
>> +@item show record pic hide-same
>> +Show the current setting of @code{pic hide-same}.
>
> "hide-same" or "hide-sameaddr"?
>

I make a new one.  please help me review it.

Thanks,
Hui

2010-08-24  Hui Zhu  <teawater@gmail.com>

	* gdb.texinfo: (Process Record and Replay): Add documentation
	for command "record pic".


---
 NEWS            |   21 +++++++++++++++++
 doc/gdb.texinfo |   66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 87 insertions(+)

--- a/NEWS
+++ b/NEWS
@@ -231,6 +231,27 @@ QTDPsrc

 * New commands

+record pic [<FILENAME>]
+  Save the execution log to a VCG file.
+
+set record pic type line|function
+  Set or show the type of the nodes that `record pic' will save.
+
+set record pic hide-nofunction on|off
+  Normally each line and each function will show up as a node in the
+  VCG file.  This command does not save nodes that correspond to
+  functions.
+  Set or show whether `record pic' hides the nodes without function
+  name.
+
+set record pic hide-nosource on|off
+  Set or show whether `record pic' hides the nodes without source line
+  debug information.
+
+set record pic hide-sameaddr on|off
+  Set or show whether `record pic' hides the nodes that have the
+  same address node in a VCG file.
+
 eval template, expressions...
   Convert the values of one or more expressions under the control
   of the string template to a command line, and call it.
--- a/doc/gdb.texinfo
+++ b/doc/gdb.texinfo
@@ -5678,6 +5678,72 @@ Default filename is @file{gdb_record.@va
 Restore the execution log from a file @file{@var{filename}}.
 File must have been created with @code{record save}.

+@kindex record pic
+@item record pic @var{filename}
+Save the execution log to a VCG file @file{@var{filename}}.
+Default filename is @file{gdb_record_@var{process_id}.vcg},
+where @var{process_id} is the process ID of the inferior.
+
+@cindex VCG file
+VCG (Visualization of Compiler Graphs) is a format for textual and
+readable specification of graph structures.  It is used for
+visualizing large graphs generated by programs.
+
+Various programs such as @uref{http://code.google.com/p/vcgviewer/,
+VCGViewer} or @uref{http://rw4.cs.uni-sb.de/users/sander/html/gsvcg1.html,
+xvcg} can display these files on graphics terminals.
+
+@item set record pic type @var{type}
+Set the type of nodes that @code{record pic} will save.
+
+When @var{type} is set to @code{line} (the default), each node of a VCG
+file saved by @code{record pic} will represent a line in the inferior's
+code.
+
+When @var{type} is set to @code{function}, each node of a VCG file that
+@code{record pic} saved will represent a function of the inferior.
+
+@item show record pic type
+Show the current setting of @code{pic type}.
+
+@item set record pic hide-nofunction
+Normally each line and each function will show up as a node in the
+VCG file.  This command does not save nodes that correspond to
+functions.
+
+Set whether @code{record pic} hides the nodes without function name.
+
+If ON (the default), @code{record pic} will hide the nodes without
+function name.
+
+@item show record pic hide-nofunction
+Show the current setting of @code{pic hide-nofunction}.
+
+@item set record pic hide-nosource
+Set whether @code{record pic} hides the nodes without source line
+debug information.
+
+If ON (the default), @code{record pic} will hide the nodes without
+source line debug information.
+
+@item show record pic hide-nosource
+Show the current setting of @code{pic hide-nosource}.
+
+@item set record pic hide-sameaddr
+Set whether @code{record pic} hides the nodes that have the same
+address node in a VCG file.
+
+If ON (the default), @code{record pic} will represent nodes that
+have the same address as a single node with a count.  The count will
+be in the form @code{c:@var{count}}.
+
+If OFF, @code{record pic} will show the nodes that have the same
+address node in a VCG file.  Each node will show its instruction
+number in the form @code{i:@var{num}}.
+
+@item show record pic hide-sameaddr
+Show the current setting of @code{pic hide-sameaddr}.
+
 @kindex set record insn-number-max
 @item set record insn-number-max @var{limit}
 Set the limit of instructions to be recorded.  Default value is 200000.

  reply	other threads:[~2010-08-24  3:19 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-01  7:12 Hui Zhu
2010-07-01 17:31 ` Eli Zaretskii
2010-07-02  6:29   ` Hui Zhu
2010-08-20  9:22     ` Eli Zaretskii
2010-08-23  8:26       ` Hui Zhu
2010-08-23 16:35         ` Eli Zaretskii
2010-08-24  3:19           ` Hui Zhu [this message]
2010-08-24 17:22             ` Eli Zaretskii
2010-08-25  2:28               ` Hui Zhu
2010-08-27 14:40                 ` Joel Brobecker
2010-08-27 15:50                   ` Eli Zaretskii
2010-08-27 15:58                     ` Joel Brobecker
2010-08-28  1:15                       ` Hui Zhu
2010-08-28  1:24                         ` Joel Brobecker
2010-09-01 18:21                           ` Michael Snyder
2010-09-01 18:28                             ` Joel Brobecker
2010-09-01 23:04                               ` Joel Brobecker
2010-09-02  1:21                                 ` Joel Brobecker

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=AANLkTik0x8fWuFTdnym2M1XaXBxOhVDTjhudB65iKPSh@mail.gmail.com \
    --to=teawater@gmail.com \
    --cc=brobecker@adacore.com \
    --cc=eliz@gnu.org \
    --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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).