diff options
author | Jim Blandy <jimb@codesourcery.com> | 2003-01-23 08:06:36 +0000 |
---|---|---|
committer | Jim Blandy <jimb@codesourcery.com> | 2003-01-23 08:06:36 +0000 |
commit | 7904e09f8fc9327521760fa66df8c6252f36582d (patch) | |
tree | 901f64e6cd88f524302cb0cf15d80e0307d8cb96 | |
parent | 7e8580c13a90f01fea31684d783b31bc87329b1c (diff) | |
download | gdb-7904e09f8fc9327521760fa66df8c6252f36582d.zip gdb-7904e09f8fc9327521760fa66df8c6252f36582d.tar.gz gdb-7904e09f8fc9327521760fa66df8c6252f36582d.tar.bz2 |
* 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.
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/symfile.c | 39 |
2 files changed, 38 insertions, 9 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 81e1f69..86bb5fb 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,13 @@ 2003-01-22 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. + * symfile.c: #include "gdb_assert.h". (syms_from_objfile): Add the ability to pass in a section offset table directly, as an alternative to the section_addr_info table. diff --git a/gdb/symfile.c b/gdb/symfile.c index 1cc5d50..a610ae0 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -867,17 +867,24 @@ new_symfile_objfile (struct objfile *objfile, int mainline, int verbo) 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; @@ -930,7 +937,8 @@ symbol_file_add (char *name, int from_tty, struct section_addr_info *addrs, 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 @@ -981,6 +989,19 @@ symbol_file_add (char *name, int from_tty, struct section_addr_info *addrs, 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(). Used when the file is supplied in the gdb command line |