This is the mail archive of the
mailing list for the GDB project.
RFC: Allow symbol_file_add to take section_offsets table
- From: Jim Blandy <jimb at redhat dot com>
- To: gdb-patches at sources dot redhat dot com
- Date: 25 Nov 2002 21:54:54 -0500
- Subject: RFC: Allow symbol_file_add to take section_offsets table
2002-11-25 Jim Blandy <email@example.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.
RCS file: /cvs/src/src/gdb/symfile.c,v
retrieving revision 184.108.40.206
diff -u -r220.127.116.11 symfile.c
--- gdb/symfile.c 26 Nov 2002 02:32:13 -0000 18.104.22.168
+++ 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
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 @@
- 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 @@
+/* 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().