contrib/gdb-7/gdb/skip.c
void
skip_re_set (void)
{
  struct skiplist_entry *e;

  ALL_SKIPLIST_ENTRIES (e)
    {
      if (e->filename != 0)
	{
	  /* If it's an entry telling us to skip a file, but the entry is
	     currently pending a solib load, let's see if we now know
	     about the file.  */
	  struct symtab *symtab = lookup_symtab (e->filename);
	  if (symtab != 0)
	    {
	      xfree (e->filename);
	      e->filename = xstrdup (symtab->filename);
	      e->gdbarch = get_objfile_arch (symtab->objfile);
	      e->pending = 0;
	    }
	  else
	    {
	      e->pending = 1;
	    }
	}
      else if (e->function_name != 0)
        {
	  char *func_name = e->function_name;
	  struct symtabs_and_lines sals = { 0 };
	  volatile struct gdb_exception decode_exception;

	  TRY_CATCH (decode_exception, RETURN_MASK_ERROR)
	    {
	      sals = decode_line_1 (&func_name, DECODE_LINE_FUNFIRSTLINE, 0, 0);
	    }

	  if (decode_exception.reason >= 0
              && sals.nelts == 1 && strlen (func_name) == 0)
	    {
	      struct symtab_and_line sal = sals.sals[0];
	      CORE_ADDR pc = sal.pc;
	      CORE_ADDR func_start = 0;
	      struct gdbarch *arch = get_sal_arch (sal);
              char *func_name;

	      if (find_pc_partial_function (pc, &func_name, &func_start, 0))
		{
		  e->pending = 0;
                  e->function_name = xstrdup (func_name);
		  e->pc = func_start;
		  e->gdbarch = arch;
		}
	    }
	  else
	    {
	      e->pending = 1;
	    }
        }
    }
}
/* Re-set the skip list after symbols have been re-loaded.  */
Re-set the skip list after symbols have been re-loaded.
Re - set the skip list after symbols have been re - loaded .
void
skip_re_set (void)
{
  struct skiplist_entry *e;
  ALL_SKIPLIST_ENTRIES (e)
    {
      if (e->filename != 0)
	{
	  struct symtab *symtab = lookup_symtab (e->filename);
	  if (symtab != 0)
	    {
	      xfree (e->filename);
	      e->filename = xstrdup (symtab->filename);
	      e->gdbarch = get_objfile_arch (symtab->objfile);
	      e->pending = 0;
	    }
	  else
	    {
	      e->pending = 1;
	    }
	}
      else if (e->function_name != 0)
        {
	  char *func_name = e->function_name;
	  struct symtabs_and_lines sals = { 0 };
	  volatile struct gdb_exception decode_exception;
	  TRY_CATCH (decode_exception, RETURN_MASK_ERROR)
	    {
	      sals = decode_line_1 (&func_name, DECODE_LINE_FUNFIRSTLINE, 0, 0);
	    }
	  if (decode_exception.reason >= 0
              && sals.nelts == 1 && strlen (func_name) == 0)
	    {
	      struct symtab_and_line sal = sals.sals[0];
	      CORE_ADDR pc = sal.pc;
	      CORE_ADDR func_start = 0;
	      struct gdbarch *arch = get_sal_arch (sal);
              char *func_name;
	      if (find_pc_partial_function (pc, &func_name, &func_start, 0))
		{
		  e->pending = 0;
                  e->function_name = xstrdup (func_name);
		  e->pc = func_start;
		  e->gdbarch = arch;
		}
	    }
	  else
	    {
	      e->pending = 1;
	    }
        }
    }
}
void skip_re_set ( void ) { struct skiplist_entry * e ; ALL_SKIPLIST_ENTRIES ( e ) { if ( e -> filename != 0 ) { struct symtab * symtab = lookup_symtab ( e -> filename ) ; if ( symtab != 0 ) { xfree ( e -> filename ) ; e -> filename = xstrdup ( symtab -> filename ) ; e -> gdbarch = get_objfile_arch ( symtab -> objfile ) ; e -> pending = 0 ; } else { e -> pending = 1 ; } } else if ( e -> function_name != 0 ) { char * func_name = e -> function_name ; struct symtabs_and_lines sals = { 0 } ; volatile struct gdb_exception decode_exception ; TRY_CATCH ( decode_exception , RETURN_MASK_ERROR ) { sals = decode_line_1 ( & func_name , DECODE_LINE_FUNFIRSTLINE , 0 , 0 ) ; } if ( decode_exception . reason >= 0 && sals . nelts == 1 && strlen ( func_name ) == 0 ) { struct symtab_and_line sal = sals . sals [ 0 ] ; CORE_ADDR pc = sal . pc ; CORE_ADDR func_start = 0 ; struct gdbarch * arch = get_sal_arch ( sal ) ; char * func_name ; if ( find_pc_partial_function ( pc , & func_name , & func_start , 0 ) ) { e -> pending = 0 ; e -> function_name = xstrdup ( func_name ) ; e -> pc = func_start ; e -> gdbarch = arch ; } } else { e -> pending = 1 ; } } } }
Re-set the skip list after symbols have been re-loaded.
Re - set the skip list after symbols have been re - loaded .
/* If it's an entry telling us to skip a file, but the entry is
	     currently pending a solib load, let's see if we now know
	     about the file.  */