This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC 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: problems debugging gcc


> Date: Tue, 4 Dec 2001 01:21:29 -0800 (PST)
> From: Danish Samad <danishsamad@yahoo.com>
> To: gcc@gcc.gnu.org

> I am facing some problems debugging gcc. Whenever I try to step into
> the function yyparse(), in the toplevel.c file, it steps into
> bison.simple instead of c-parse.c. Although there is a portion in
> bison.simple which says that the action file gets copied here but
> while debugging this portion it says file out of range.  Any
> solution to this problem?

Yes.  Step through bison.simple a couple hundred times, and you'll
discover that most of the time, it spends it's time in about two to
four places you care about.  One place, is dispatching to actions.  It
can be felt, by noticing the line (at least in bison 1.25):

  switch (yyn) {

and the fact that when you step it, it will be at a line in your
parse.y file.  If you set a break point on that line, with the command
step 1, you will discover that you always wind up stopped inside an
action, and that you always stop for all actions.  This is very handy.

The next thing that is handy, is to have compiled with -DYYDEBUG=1 and
set yydebug to 1, and then set a break point on the lines like (again,
these are from bison 1.25, your mileage may vary):

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Entering state %d\n", yystate);
#endif

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
#endif

      fprintf (stderr, "Reducing via rule %d (line %d), ",
               yyn, yyrline[yyn]);

depending upon what you want to see.  Feel free to contribute this to
the bison manual, if it helps you.  About the out of range stuff, best
to just ignore it, step until you get someplace you want to be.


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