This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA/DOC] record pic


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]