This is the mail archive of the gdb-patches@sources.redhat.com 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]

Re: [rfa] symbol hashing, part 2/n - ALL_BLOCK_SYMBOLS


Daniel Jacobowitz writes:
 > On Fri, Oct 12, 2001 at 11:56:55AM -0400, Elena Zannoni wrote:
 > > No need to resubmit. Just check it in as 2 patches instead of 1. So
 > > that I can do cvs diffs between versions of the file later, if there
 > > is an issue.
 > 
 > Gotcha.
 > 
 > > Yes, I would prefer to change this too.
 > 
 > Included now.
 > 
 > > How about this other one? in symtab.c ~line 1254
 > > 
 > >       top = BLOCK_NSYMS (block);
 > >       while (bot < top)
 > > 	{
 > > 	  sym = BLOCK_SYM (block, bot);
 > > 	  if (SYMBOL_NAMESPACE (sym) == namespace &&
 > > 	      SYMBOL_MATCHES_NAME (sym, name))
 > > 	    {
 > > 	      return sym;
 > > 	    }
 > > 	  bot++;
 > > 	}
 > 
 > Can't.  Bot is not 0; this doesn't search all symbols.  Also,
 > ALL_BLOCK_SYMBOLS logically doesn't imply an ordered search, which this
 > demands.  This'll be clarified in the hashing patch.
 > 

Ah yes, didn't notice.

 > >  > > Another one is in mi/mi-stack-cmd.c.
 > >  > > There are some also in gdbtk/generic/gdbtk-cmds.c and gdbtk-stack.c.
 > >  > 
 > >  > These I missed; I didn't think to check further down than the top
 > >  > level.  I'll get them when I repost this, which it looks like I'll need
 > >  > to do.
 > >  > 
 > > 
 > > No, just post the new changes only.
 > 
 > Got this bunch also.  Do I need someone else's approval to check in
 > changes to gdbtk/generic/?  I don't think so, since these are obvious.
 > 
 > I'm actually just attaching the whole patch; it's relatively short now,
 > and I've tweaked it in a couple of places.
 > 

Looks ok.

 > >  > > Some tricky ones are left, for a second pass. In mdebugread.c: it is
 > >  > > actually a while loop, in mylookup_symbol, similarly in coffread.c:
 > >  > > patch_opaque_types(), the for loop is reversed.
 > >  > > (Were these in your original patch? I don't remember).
 > >  > 
 > >  > The one in coffread worries me; I can not tell from the comments if it
 > >  > is order-sensitive or not.  The one in mdebugread does not, because
 > >  > mdebugread does dastardly things to blocks.  I deliberately left those
 > >  > unhashed.
 > > 
 > > Hmmm, maybe we should leave the coffread one alone. 
 > 
 > I'd actually appreciate it if you, or someone else with a little
 > experience with coffread (any takers?), would look at this.  It
 > absolutely has to be changed eventually; I didn't include it in this
 > patch only because it wasn't obvious.
 > 

Ok, I'll look it over.

 > > But I think we should use the macro in mdebugread.c.
 > 
 > Sure.
 > 
 > Here's what I've got now.  I'll commit it later today unless someone
 > sees a problem with it.
 > 

Just send a copy of this to the insight mailing list to see if they
are ok with the gdbtk changes. I don't see why they wouldn't.

Elena

 > -- 
 > Daniel Jacobowitz                           Carnegie Mellon University
 > MontaVista Software                         Debian GNU/Linux Developer
 > 
 > 2001-10-01  Daniel Jacobowitz  <drow@mvista.com>
 > 
 > 	* symtab.h (struct block): (ALL_BLOCK_SYMBOLS): New macro.
 > 
 > 	* symtab.c (find_pc_sect_symtab): Use ALL_BLOCK_SYMBOLS.
 > 	(make_symbol_completion_list): Likewise.
 > 	(make_symbol_overload_list): Likewise.
 > 	* buildsym.c (finish_block): Likewise.
 > 	* breakpoint.c (get_catch_sals):  Likewise.
 > 	* mdebugread.c (mylookup_symbol): Likewise.
 > 	* objfiles.c (objfile_relocate): Likewise.
 > 	* printcmd.c (print_frame_args): Likewise.
 > 	* stack.c (print_block_frame_locals): Likewise.
 > 	(print_block_frame_labels): Likewise.
 > 	(print_frame_arg_vars): Likewise.
 > 	* symmisc.c (dump_symtab): Likewise.
 > 	* tracepoint.c (add_local_symbols): Likewise.
 > 	(scope_info): Likewise.
 > 
 > 2001-10-12  Daniel Jacobowitz  <drow@mvista.com>
 > 
 > 	* mi-cmd-stack.c (list_args_or_locals): Use ALL_BLOCK_SYMBOLS.
 > 
 > 2001-10-12  Daniel Jacobowitz  <drow@mvista.com>
 > 
 > 	* generic/gdbtk-cmds.c (gdb_listfuncs): Use ALL_BLOCK_SYMBOLS.
 > 	* generic/gdbtk-stack.c (gdb_block_vars): Likewise.
 > 	(gdb_get_blocks): Likewise.
 > 	(gdb_get_vars_command): Likewise.
 > 
 > Index: gdb/breakpoint.c
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/breakpoint.c,v
 > retrieving revision 1.53
 > diff -u -p -r1.53 breakpoint.c
 > --- gdb/breakpoint.c	2001/09/18 05:00:48	1.53
 > +++ gdb/breakpoint.c	2001/10/12 18:34:49
 > @@ -5871,15 +5871,11 @@ get_catch_sals (int this_level_only)
 >  	  if (blocks_searched[index] == 0)
 >  	    {
 >  	      struct block *b = BLOCKVECTOR_BLOCK (bl, index);
 > -	      int nsyms;
 >  	      register int i;
 >  	      register struct symbol *sym;
 >  
 > -	      nsyms = BLOCK_NSYMS (b);
 > -
 > -	      for (i = 0; i < nsyms; i++)
 > +	      ALL_BLOCK_SYMBOLS (b, i, sym)
 >  		{
 > -		  sym = BLOCK_SYM (b, i);
 >  		  if (STREQ (SYMBOL_NAME (sym), "default"))
 >  		    {
 >  		      if (have_default)
 > Index: gdb/buildsym.c
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/buildsym.c,v
 > retrieving revision 1.11
 > diff -u -p -r1.11 buildsym.c
 > --- gdb/buildsym.c	2001/04/30 10:30:27	1.11
 > +++ gdb/buildsym.c	2001/10/12 18:34:49
 > @@ -275,9 +275,8 @@ finish_block (struct symbol *symbol, str
 >  	     parameter symbols. */
 >  	  int nparams = 0, iparams;
 >  	  struct symbol *sym;
 > -	  for (i = 0; i < BLOCK_NSYMS (block); i++)
 > +	  ALL_BLOCK_SYMBOLS (block, i, sym)
 >  	    {
 > -	      sym = BLOCK_SYM (block, i);
 >  	      switch (SYMBOL_CLASS (sym))
 >  		{
 >  		case LOC_ARG:
 > Index: gdb/mdebugread.c
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/mdebugread.c,v
 > retrieving revision 1.15
 > diff -u -p -r1.15 mdebugread.c
 > --- gdb/mdebugread.c	2001/09/05 02:54:15	1.15
 > +++ gdb/mdebugread.c	2001/10/12 18:34:50
 > @@ -3853,22 +3853,19 @@ static struct symbol *
 >  mylookup_symbol (char *name, register struct block *block,
 >  		 namespace_enum namespace, enum address_class class)
 >  {
 > -  register int bot, top, inc;
 > -  register struct symbol *sym;
 > +  int i, inc;
 > +  struct symbol *sym;
 >  
 > -  bot = 0;
 > -  top = BLOCK_NSYMS (block);
 >    inc = name[0];
 > -  while (bot < top)
 > +  ALL_BLOCK_SYMBOLS (block, i, sym)
 >      {
 > -      sym = BLOCK_SYM (block, bot);
 >        if (SYMBOL_NAME (sym)[0] == inc
 >  	  && SYMBOL_NAMESPACE (sym) == namespace
 >  	  && SYMBOL_CLASS (sym) == class
 >  	  && strcmp (SYMBOL_NAME (sym), name) == 0)
 >  	return sym;
 > -      bot++;
 >      }
 > +
 >    block = BLOCK_SUPERBLOCK (block);
 >    if (block)
 >      return mylookup_symbol (name, block, namespace, class);
 > Index: gdb/objfiles.c
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/objfiles.c,v
 > retrieving revision 1.16
 > diff -u -p -r1.16 objfiles.c
 > --- gdb/objfiles.c	2001/07/05 21:32:39	1.16
 > +++ gdb/objfiles.c	2001/10/12 18:34:50
 > @@ -557,16 +557,15 @@ objfile_relocate (struct objfile *objfil
 >        for (i = 0; i < BLOCKVECTOR_NBLOCKS (bv); ++i)
 >  	{
 >  	  struct block *b;
 > +	  struct symbol *sym;
 >  	  int j;
 >  
 >  	  b = BLOCKVECTOR_BLOCK (bv, i);
 >  	  BLOCK_START (b) += ANOFFSET (delta, s->block_line_section);
 >  	  BLOCK_END (b) += ANOFFSET (delta, s->block_line_section);
 >  
 > -	  for (j = 0; j < BLOCK_NSYMS (b); ++j)
 > +	  ALL_BLOCK_SYMBOLS (b, j, sym)
 >  	    {
 > -	      struct symbol *sym = BLOCK_SYM (b, j);
 > -
 >  	      fixup_symbol_section (sym, objfile);
 >  
 >  	      /* The RS6000 code from which this was taken skipped
 > Index: gdb/printcmd.c
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/printcmd.c,v
 > retrieving revision 1.28
 > diff -u -p -r1.28 printcmd.c
 > --- gdb/printcmd.c	2001/10/12 17:15:34	1.28
 > +++ gdb/printcmd.c	2001/10/12 18:34:50
 > @@ -1783,7 +1783,6 @@ print_frame_args (struct symbol *func, s
 >  		  struct ui_file *stream)
 >  {
 >    struct block *b = NULL;
 > -  int nsyms = 0;
 >    int first = 1;
 >    register int i;
 >    register struct symbol *sym;
 > @@ -1806,12 +1805,9 @@ print_frame_args (struct symbol *func, s
 >    if (func)
 >      {
 >        b = SYMBOL_BLOCK_VALUE (func);
 > -      nsyms = BLOCK_NSYMS (b);
 > -
 > -      for (i = 0; i < nsyms; i++)
 > +      ALL_BLOCK_SYMBOLS (b, i, sym)
 >          {
 >  	  QUIT;
 > -	  sym = BLOCK_SYM (b, i);
 >  
 >  	  /* Keep track of the highest stack argument offset seen, and
 >  	     skip over any kinds of symbols we don't care about.  */
 > Index: gdb/stack.c
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/stack.c,v
 > retrieving revision 1.22
 > diff -u -p -r1.22 stack.c
 > --- gdb/stack.c	2001/07/14 18:59:07	1.22
 > +++ gdb/stack.c	2001/10/12 18:34:50
 > @@ -1207,16 +1207,12 @@ static int
 >  print_block_frame_locals (struct block *b, register struct frame_info *fi,
 >  			  int num_tabs, register struct ui_file *stream)
 >  {
 > -  int nsyms;
 >    register int i, j;
 >    register struct symbol *sym;
 >    register int values_printed = 0;
 >  
 > -  nsyms = BLOCK_NSYMS (b);
 > -
 > -  for (i = 0; i < nsyms; i++)
 > +  ALL_BLOCK_SYMBOLS (b, i, sym)
 >      {
 > -      sym = BLOCK_SYM (b, i);
 >        switch (SYMBOL_CLASS (sym))
 >  	{
 >  	case LOC_LOCAL:
 > @@ -1246,16 +1242,12 @@ static int
 >  print_block_frame_labels (struct block *b, int *have_default,
 >  			  register struct ui_file *stream)
 >  {
 > -  int nsyms;
 >    register int i;
 >    register struct symbol *sym;
 >    register int values_printed = 0;
 > -
 > -  nsyms = BLOCK_NSYMS (b);
 >  
 > -  for (i = 0; i < nsyms; i++)
 > +  ALL_BLOCK_SYMBOLS (b, i, sym)
 >      {
 > -      sym = BLOCK_SYM (b, i);
 >        if (STREQ (SYMBOL_NAME (sym), "default"))
 >  	{
 >  	  if (*have_default)
 > @@ -1432,7 +1424,6 @@ print_frame_arg_vars (register struct fr
 >  {
 >    struct symbol *func = get_frame_function (fi);
 >    register struct block *b;
 > -  int nsyms;
 >    register int i;
 >    register struct symbol *sym, *sym2;
 >    register int values_printed = 0;
 > @@ -1444,11 +1435,8 @@ print_frame_arg_vars (register struct fr
 >      }
 >  
 >    b = SYMBOL_BLOCK_VALUE (func);
 > -  nsyms = BLOCK_NSYMS (b);
 > -
 > -  for (i = 0; i < nsyms; i++)
 > +  ALL_BLOCK_SYMBOLS (b, i, sym)
 >      {
 > -      sym = BLOCK_SYM (b, i);
 >        switch (SYMBOL_CLASS (sym))
 >  	{
 >  	case LOC_ARG:
 > @@ -1483,7 +1471,6 @@ print_frame_arg_vars (register struct fr
 >  	  break;
 >  	}
 >      }
 > -
 >    if (!values_printed)
 >      {
 >        fprintf_filtered (stream, "No arguments.\n");
 > Index: gdb/symmisc.c
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/symmisc.c,v
 > retrieving revision 1.5
 > diff -u -p -r1.5 symmisc.c
 > --- gdb/symmisc.c	2001/03/06 08:21:17	1.5
 > +++ gdb/symmisc.c	2001/10/12 18:34:50
 > @@ -410,6 +410,7 @@ dump_symtab (struct objfile *objfile, st
 >    int len, blen;
 >    register struct linetable *l;
 >    struct blockvector *bv;
 > +  struct symbol *sym;
 >    register struct block *b;
 >    int depth;
 >  
 > @@ -471,11 +472,12 @@ dump_symtab (struct objfile *objfile, st
 >  	  if (BLOCK_GCC_COMPILED (b))
 >  	    fprintf_filtered (outfile, ", compiled with gcc%d", BLOCK_GCC_COMPILED (b));
 >  	  fprintf_filtered (outfile, "\n");
 > -	  /* Now print each symbol in this block */
 > -	  for (j = 0; j < blen; j++)
 > +	  /* Now print each symbol in this block.  */
 > +	  /* FIXMED: Sort?  */
 > +	  ALL_BLOCK_SYMBOLS (b, j, sym)
 >  	    {
 >  	      struct print_symbol_args s;
 > -	      s.symbol = BLOCK_SYM (b, j);
 > +	      s.symbol = sym;
 >  	      s.depth = depth + 1;
 >  	      s.outfile = outfile;
 >  	      catch_errors (print_symbol, &s, "Error printing symbol:\n",
 > Index: gdb/symtab.c
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/symtab.c,v
 > retrieving revision 1.43
 > diff -u -p -r1.43 symtab.c
 > --- gdb/symtab.c	2001/10/12 03:38:12	1.43
 > +++ gdb/symtab.c	2001/10/12 18:34:50
 > @@ -2992,9 +2992,8 @@ make_symbol_completion_list (char *text,
 >        /* Also catch fields of types defined in this places which match our
 >           text string.  Only complete on types visible from current context. */
 >  
 > -      for (i = 0; i < BLOCK_NSYMS (b); i++)
 > +      ALL_BLOCK_SYMBOLS (b, i, sym)
 >  	{
 > -	  sym = BLOCK_SYM (b, i);
 >  	  COMPLETION_LIST_ADD_SYMBOL (sym, sym_text, sym_text_len, text, word);
 >  	  if (SYMBOL_CLASS (sym) == LOC_TYPEDEF)
 >  	    {
 > @@ -3023,9 +3022,8 @@ make_symbol_completion_list (char *text,
 >    {
 >      QUIT;
 >      b = BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), GLOBAL_BLOCK);
 > -    for (i = 0; i < BLOCK_NSYMS (b); i++)
 > +    ALL_BLOCK_SYMBOLS (b, i, sym)
 >        {
 > -	sym = BLOCK_SYM (b, i);
 >  	COMPLETION_LIST_ADD_SYMBOL (sym, sym_text, sym_text_len, text, word);
 >        }
 >    }
 > @@ -3037,9 +3035,8 @@ make_symbol_completion_list (char *text,
 >      /* Don't do this block twice.  */
 >      if (b == surrounding_static_block)
 >        continue;
 > -    for (i = 0; i < BLOCK_NSYMS (b); i++)
 > +    ALL_BLOCK_SYMBOLS (b, i, sym)
 >        {
 > -	sym = BLOCK_SYM (b, i);
 >  	COMPLETION_LIST_ADD_SYMBOL (sym, sym_text, sym_text_len, text, word);
 >        }
 >    }
 > @@ -3143,16 +3140,14 @@ make_file_symbol_completion_list (char *
 >       symbols which match.  */
 >  
 >    b = BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), GLOBAL_BLOCK);
 > -  for (i = 0; i < BLOCK_NSYMS (b); i++)
 > +  ALL_BLOCK_SYMBOLS (b, i, sym)
 >      {
 > -      sym = BLOCK_SYM (b, i);
 >        COMPLETION_LIST_ADD_SYMBOL (sym, sym_text, sym_text_len, text, word);
 >      }
 >  
 >    b = BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), STATIC_BLOCK);
 > -  for (i = 0; i < BLOCK_NSYMS (b); i++)
 > +  ALL_BLOCK_SYMBOLS (b, i, sym)
 >      {
 > -      sym = BLOCK_SYM (b, i);
 >        COMPLETION_LIST_ADD_SYMBOL (sym, sym_text, sym_text_len, text, word);
 >      }
 >  
 > @@ -3530,9 +3525,8 @@ make_symbol_overload_list (struct symbol
 >        /* Also catch fields of types defined in this places which match our
 >           text string.  Only complete on types visible from current context. */
 >  
 > -      for (i = 0; i < BLOCK_NSYMS (b); i++)
 > +      ALL_BLOCK_SYMBOLS (b, i, sym)
 >  	{
 > -	  sym = BLOCK_SYM (b, i);
 >  	  overload_list_add_symbol (sym, oload_name);
 >  	}
 >      }
 > @@ -3544,9 +3538,8 @@ make_symbol_overload_list (struct symbol
 >    {
 >      QUIT;
 >      b = BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), GLOBAL_BLOCK);
 > -    for (i = 0; i < BLOCK_NSYMS (b); i++)
 > +    ALL_BLOCK_SYMBOLS (b, i, sym)
 >        {
 > -	sym = BLOCK_SYM (b, i);
 >  	overload_list_add_symbol (sym, oload_name);
 >        }
 >    }
 > @@ -3558,9 +3551,8 @@ make_symbol_overload_list (struct symbol
 >      /* Don't do this block twice.  */
 >      if (b == surrounding_static_block)
 >        continue;
 > -    for (i = 0; i < BLOCK_NSYMS (b); i++)
 > +    ALL_BLOCK_SYMBOLS (b, i, sym)
 >        {
 > -	sym = BLOCK_SYM (b, i);
 >  	overload_list_add_symbol (sym, oload_name);
 >        }
 >    }
 > Index: gdb/symtab.h
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/symtab.h,v
 > retrieving revision 1.24
 > diff -u -p -r1.24 symtab.h
 > --- gdb/symtab.h	2001/07/07 17:19:50	1.24
 > +++ gdb/symtab.h	2001/10/12 18:34:50
 > @@ -467,6 +467,14 @@ struct block
 >  #define BLOCK_SUPERBLOCK(bl)	(bl)->superblock
 >  #define BLOCK_GCC_COMPILED(bl)	(bl)->gcc_compile_flag
 >  
 > +/* Macro to loop through all symbols in a block BL.
 > +   i counts which symbol we are looking at, and sym points to the current
 > +   symbol.  */
 > +#define ALL_BLOCK_SYMBOLS(bl, i, sym)			\
 > +	for ((i) = 0, (sym) = BLOCK_SYM ((bl), (i));	\
 > +	     (i) < BLOCK_NSYMS ((bl));			\
 > +	     ++(i), (sym) = BLOCK_SYM ((bl), (i)))
 > +
 >  /* Nonzero if symbols of block BL should be sorted alphabetically.
 >     Don't sort a block which corresponds to a function.  If we did the
 >     sorting would have to preserve the order of the symbols for the
 > Index: gdb/tracepoint.c
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/tracepoint.c,v
 > retrieving revision 1.26
 > diff -u -p -r1.26 tracepoint.c
 > --- gdb/tracepoint.c	2001/08/23 20:31:36	1.26
 > +++ gdb/tracepoint.c	2001/10/12 18:34:50
 > @@ -1296,16 +1296,14 @@ add_local_symbols (struct collection_lis
 >  {
 >    struct symbol *sym;
 >    struct block *block;
 > -  int i, nsyms, count = 0;
 > +  int i, count = 0;
 >  
 >    block = block_for_pc (pc);
 >    while (block != 0)
 >      {
 >        QUIT;			/* allow user to bail out with ^C */
 > -      nsyms = BLOCK_NSYMS (block);
 > -      for (i = 0; i < nsyms; i++)
 > +      ALL_BLOCK_SYMBOLS (block, i, sym)
 >  	{
 > -	  sym = BLOCK_SYM (block, i);
 >  	  switch (SYMBOL_CLASS (sym))
 >  	    {
 >  	    default:
 > @@ -2335,7 +2333,7 @@ scope_info (char *args, int from_tty)
 >    struct minimal_symbol *msym;
 >    struct block *block;
 >    char **canonical, *symname, *save_args = args;
 > -  int i, j, nsyms, count = 0;
 > +  int i, j, count = 0;
 >  
 >    if (args == 0 || *args == 0)
 >      error ("requires an argument (function, line or *addr) to define a scope");
 > @@ -2351,14 +2349,13 @@ scope_info (char *args, int from_tty)
 >    while (block != 0)
 >      {
 >        QUIT;			/* allow user to bail out with ^C */
 > -      nsyms = BLOCK_NSYMS (block);
 > -      for (i = 0; i < nsyms; i++)
 > +      ALL_BLOCK_SYMBOLS (block, i, sym)
 >  	{
 >  	  QUIT;			/* allow user to bail out with ^C */
 >  	  if (count == 0)
 >  	    printf_filtered ("Scope for %s:\n", save_args);
 >  	  count++;
 > -	  sym = BLOCK_SYM (block, i);
 > +
 >  	  symname = SYMBOL_NAME (sym);
 >  	  if (symname == NULL || *symname == '\0')
 >  	    continue;		/* probably botched, certainly useless */
 > Index: gdb/gdbtk/generic/gdbtk-cmds.c
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-cmds.c,v
 > retrieving revision 1.39
 > diff -u -p -r1.39 gdbtk-cmds.c
 > --- gdb/gdbtk/generic/gdbtk-cmds.c	2001/08/28 22:22:56	1.39
 > +++ gdb/gdbtk/generic/gdbtk-cmds.c	2001/10/12 18:34:50
 > @@ -1498,9 +1498,8 @@ gdb_listfuncs (clientData, interp, objc,
 >        /* Skip the sort if this block is always sorted.  */
 >        if (!BLOCK_SHOULD_SORT (b))
 >  	sort_block_syms (b);
 > -      for (j = 0; j < BLOCK_NSYMS (b); j++)
 > +      ALL_BLOCK_SYMBOLS (b, j, sym)
 >  	{
 > -	  sym = BLOCK_SYM (b, j);
 >  	  if (SYMBOL_CLASS (sym) == LOC_BLOCK)
 >  	    {
 >  
 > Index: gdb/gdbtk/generic/gdbtk-stack.c
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-stack.c,v
 > retrieving revision 1.2
 > diff -u -p -r1.2 gdbtk-stack.c
 > --- gdb/gdbtk/generic/gdbtk-stack.c	2001/06/11 20:07:46	1.2
 > +++ gdb/gdbtk/generic/gdbtk-stack.c	2001/10/12 18:34:50
 > @@ -19,6 +19,7 @@
 >     Boston, MA 02111-1307, USA.  */
 >  
 >  #include "defs.h"
 > +#include "symtab.h"
 >  #include "frame.h"
 >  #include "value.h"
 >  #include "target.h"
 > @@ -93,7 +94,7 @@ gdb_block_vars (clientData, interp, objc
 >       Tcl_Obj *CONST objv[];
 >  {
 >    struct block *block;
 > -  int nsyms, i;
 > +  int i;
 >    struct symbol *sym;
 >    CORE_ADDR start, end;
 >  
 > @@ -117,10 +118,8 @@ gdb_block_vars (clientData, interp, objc
 >      {
 >        if (BLOCK_START (block) == start && BLOCK_END (block) == end)
 >  	{
 > -	  nsyms = BLOCK_NSYMS (block);
 > -	  for (i = 0; i < nsyms; i++)
 > +	  ALL_BLOCK_SYMBOLS (block, i, sym)
 >  	    {
 > -	      sym = BLOCK_SYM (block, i);
 >  	      switch (SYMBOL_CLASS (sym))
 >  		{
 >  		case LOC_ARG:		  /* argument              */
 > @@ -172,7 +171,7 @@ gdb_get_blocks (clientData, interp, objc
 >       Tcl_Obj *CONST objv[];
 >  {
 >    struct block *block;
 > -  int nsyms, i, junk;
 > +  int i, junk;
 >    struct symbol *sym;
 >    CORE_ADDR pc;
 >  
 > @@ -184,11 +183,9 @@ gdb_get_blocks (clientData, interp, objc
 >        pc = get_frame_pc (selected_frame);
 >        while (block != 0)
 >  	{
 > -	  nsyms = BLOCK_NSYMS (block);
 >  	  junk = 0;
 > -	  for (i = 0; i < nsyms; i++)
 > +	  ALL_BLOCK_SYMBOLS (block, i, sym)
 >  	    {
 > -	      sym = BLOCK_SYM (block, i);
 >  	      switch (SYMBOL_CLASS (sym))
 >  		{
 >  		default:
 > @@ -301,7 +298,7 @@ gdb_get_vars_command (clientData, interp
 >    struct symbol *sym;
 >    struct block *block;
 >    char **canonical, *args;
 > -  int i, nsyms, arguments;
 > +  int i, arguments;
 >  
 >    if (objc > 2)
 >      {
 > @@ -344,10 +341,8 @@ gdb_get_vars_command (clientData, interp
 >  
 >    while (block != 0)
 >      {
 > -      nsyms = BLOCK_NSYMS (block);
 > -      for (i = 0; i < nsyms; i++)
 > +      ALL_BLOCK_SYMBOLS (block, i, sym)
 >  	{
 > -	  sym = BLOCK_SYM (block, i);
 >  	  switch (SYMBOL_CLASS (sym))
 >  	    {
 >  	    default:
 > Index: gdb/mi/mi-cmd-stack.c
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/mi/mi-cmd-stack.c,v
 > retrieving revision 1.7
 > diff -u -p -r1.7 mi-cmd-stack.c
 > --- gdb/mi/mi-cmd-stack.c	2001/06/26 18:50:51	1.7
 > +++ gdb/mi/mi-cmd-stack.c	2001/10/12 18:34:50
 > @@ -25,6 +25,7 @@
 >  #include "value.h"
 >  #include "mi-cmds.h"
 >  #include "ui-out.h"
 > +#include "symtab.h"
 >  
 >  #ifdef UI_OUT
 >  /* FIXME: these should go in some .h file but stack.c doesn't have a
 > @@ -226,10 +227,8 @@ list_args_or_locals (int locals, int val
 >  
 >    while (block != 0)
 >      {
 > -      nsyms = BLOCK_NSYMS (block);
 > -      for (i = 0; i < nsyms; i++)
 > +      ALL_BLOCK_SYMBOLS (block, i, sym)
 >  	{
 > -	  sym = BLOCK_SYM (block, i);
 >  	  switch (SYMBOL_CLASS (sym))
 >  	    {
 >  	    default:


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