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]
Other format: [Raw text]

Re: RFC: Allow symbol_file_add to take section_offsets table


I've committed this change.  There should be no user-visible change in
behavior.

Jim Blandy <jimb@redhat.com> writes:

> 2002-11-25  Jim Blandy  <jimb@redhat.com>
> 
> 	* symfile.c (symbol_file_add_with_addrs_or_offsets): New function,
> 	like the old symbol_file_add, but taking new arguments: you can
> 	now pass in either a `struct section_addr_info' list to say where
> 	each section is loaded, or a `struct section_offsets' table.  Pass
> 	these new arguments through to syms_from_objfile as appropriate.
> 	(symbol_file_add): Just call symbol_file_add_with_addrs_or_offsets, 
> 	with the appropriate quiescent values for the new arguments.
> 	
> Index: gdb/symfile.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/symfile.c,v
> retrieving revision 1.74.2.1
> diff -u -r1.74.2.1 symfile.c
> --- gdb/symfile.c	26 Nov 2002 02:32:13 -0000	1.74.2.1
> +++ gdb/symfile.c	26 Nov 2002 02:36:47 -0000
> @@ -866,17 +866,24 @@
>  
>     NAME is the file name (which will be tilde-expanded and made
>     absolute herein) (but we don't free or modify NAME itself).
> -   FROM_TTY says how verbose to be.  MAINLINE specifies whether this
> -   is the main symbol file, or whether it's an extra symbol file such
> -   as dynamically loaded code.  If !mainline, ADDR is the address
> -   where the text segment was loaded.
> +
> +   FROM_TTY says how verbose to be.
> +
> +   MAINLINE specifies whether this is the main symbol file, or whether
> +   it's an extra symbol file such as dynamically loaded code.
> +
> +   ADDRS, OFFSETS, and NUM_OFFSETS are as described for
> +   syms_from_objfile, above.  ADDRS is ignored when MAINLINE is
> +   non-zero.
>  
>     Upon success, returns a pointer to the objfile that was added.
>     Upon failure, jumps back to command level (never returns). */
> -
> -struct objfile *
> -symbol_file_add (char *name, int from_tty, struct section_addr_info *addrs,
> -		 int mainline, int flags)
> +static struct objfile *
> +symbol_file_add_with_addrs_or_offsets (char *name, int from_tty,
> +                                       struct section_addr_info *addrs,
> +                                       struct section_offsets *offsets,
> +                                       int num_offsets,
> +                                       int mainline, int flags)
>  {
>    struct objfile *objfile;
>    struct partial_symtab *psymtab;
> @@ -929,7 +936,8 @@
>  	      gdb_flush (gdb_stdout);
>  	    }
>  	}
> -      syms_from_objfile (objfile, addrs, 0, 0, mainline, from_tty);
> +      syms_from_objfile (objfile, addrs, offsets, num_offsets,
> +                         mainline, from_tty);
>      }
>  
>    /* We now have at least a partial symbol table.  Check to see if the
> @@ -979,6 +987,19 @@
>  
>    return (objfile);
>  }
> +
> +
> +/* Process a symbol file, as either the main file or as a dynamically
> +   loaded file.  See symbol_file_add_with_addrs_or_offsets's comments
> +   for details.  */
> +struct objfile *
> +symbol_file_add (char *name, int from_tty, struct section_addr_info *addrs,
> +		 int mainline, int flags)
> +{
> +  return symbol_file_add_with_addrs_or_offsets (name, from_tty, addrs, 0, 0, 
> +                                                mainline, flags);
> +}
> +
>  
>  /* Call symbol_file_add() with default values and update whatever is
>     affected by the loading of a new main().


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