Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Elena Zannoni <ezannoni@redhat.com>
To: Jim Blandy <jimb@redhat.com>
Cc: Elena Zannoni <ezannoni@redhat.com>,
	David Carlton <carlton@kealia.com>,
	gdb-patches@sources.redhat.com
Subject: Re: [rfa] add 'parent' field to struct die_info
Date: Thu, 02 Oct 2003 15:44:00 -0000	[thread overview]
Message-ID: <16252.19002.705540.309926@localhost.redhat.com> (raw)
In-Reply-To: <vt21xtwl210.fsf@zenia.home>

Jim Blandy writes:
 > 
 > Elena Zannoni <ezannoni@redhat.com> writes:
 > > May I suggest to add a comment where the structure is defined that explains
 > > in plain English the structure/relations of the dies?
 > 
 > How's this?
 > 

The thing I am trying to capture is the organization of the
tree/graph, i.e.  how the various functions that loop through the
entries following the pointers navigate the structure.

I get often confused by statements like:
      if (dies->has_children)
	{
	  child_die = dies->next;

which now is much clearer anyway. I think basically we need something
to capture the definition of next die to be visited. Like below.

Each debugging information entry is defined either to have child
entries or not to have child entries. If an entry is defined not to
have children, the next physically succeeding entry is a sibling. If
an entry is defined to have children, the next physically succeeding
entry is its first child. Additional children are represented as
siblings of the first child. A chain of sibling entries is terminated
by a null entry.

elena

 > 2003-10-01  Jim Blandy  <jimb@redhat.com>
 > 
 > 	* dwarf2read.c (struct die_info): Doc fix.
 > 
 > Index: gdb/dwarf2read.c
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/dwarf2read.c,v
 > retrieving revision 1.109
 > diff -c -c -F'^(' -r1.109 dwarf2read.c
 > *** gdb/dwarf2read.c	30 Sep 2003 22:29:28 -0000	1.109
 > --- gdb/dwarf2read.c	2 Oct 2003 04:06:12 -0000
 > ***************
 > *** 320,328 ****
 > --- 320,335 ----
 >       unsigned int num_attrs;	/* Number of attributes */
 >       struct attribute *attrs;	/* An array of attributes */
 >       struct die_info *next_ref;	/* Next die in ref hash table */
 > + 
 > +     /* The dies in a compilation unit form an n-ary tree.  PARENT
 > +        points to this die's parent; CHILD points to the first child of
 > +        this node; and all the children of a given node are chained
 > +        together via their SIBLING fields, terminated by a die whose
 > +        tag is zero.  */
 >       struct die_info *child;	/* Its first child, if any.  */
 >       struct die_info *sibling;	/* Its next sibling, if any.  */
 >       struct die_info *parent;	/* Its parent, if any.  */
 > + 
 >       struct type *type;		/* Cached type information */
 >     };
 >   


  reply	other threads:[~2003-10-02 15:44 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-09-30 16:29 David Carlton
2003-09-30 22:13 ` Jim Blandy
2003-09-30 22:54   ` David Carlton
2003-10-01 17:24     ` Elena Zannoni
2003-10-02  4:07       ` Jim Blandy
2003-10-02 15:44         ` Elena Zannoni [this message]
2003-10-02 15:57           ` Jim Blandy
2003-10-02 16:00             ` Elena Zannoni

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=16252.19002.705540.309926@localhost.redhat.com \
    --to=ezannoni@redhat.com \
    --cc=carlton@kealia.com \
    --cc=gdb-patches@sources.redhat.com \
    --cc=jimb@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