diff options
author | Stu Grossman <grossman@cygnus> | 1994-03-21 19:57:38 +0000 |
---|---|---|
committer | Stu Grossman <grossman@cygnus> | 1994-03-21 19:57:38 +0000 |
commit | 72bba93b85e2e8c887df447c4237d0e7c21d07d8 (patch) | |
tree | 9f5fb008f8a97b4b4acd26c64fd1802442d63b36 /gdb/minsyms.c | |
parent | 4fd5eed484d95b5a5647a0bba76533ba66cb57a3 (diff) | |
download | gdb-72bba93b85e2e8c887df447c4237d0e7c21d07d8.zip gdb-72bba93b85e2e8c887df447c4237d0e7c21d07d8.tar.gz gdb-72bba93b85e2e8c887df447c4237d0e7c21d07d8.tar.bz2 |
Mon Mar 21 11:02:51 1994 Stu Grossman (grossman at cygnus.com)
* alpha-tdep.c: Gobs of changes (many imported from mips-tdep) to
improve remote debugging efficiency. Also fixed problems with
doing function calls for programs with no entry points.
* infcmd.c (run_stack_dummy): Use CALL_DUMMY_ADDRESS instead of
entry_point_address.
* inferior.h (PC_IN_CALL_DUMMY): ditto.
* mdebugread.c (parse_symbol, parse_procedure, parse_external,
parse_lines): Pass section_offsets info to these routines so that
we can relocate symbol table entries upon readin.
* (psymtab_to_symtab_1): Set symtab->primary to tell
objfile_relocate to do relocations for our symbols.
* (ecoff_relocate_efi): New routine to relocate adr field of PDRs
(which hang off of the symbol table).
* Use prim_record_minimal_symbols_and_info instead of
prim_record_minimal_symbols to supply section info to make minimal
symbol relocations work.
* minsyms.c (prim_record_minimal_symbols_and_info): If section is
-1, try to deduce it from ms_type.
* objfiles.c (objfile_relocate): Use ALL_OBJFILE_SYMTABS where
appropriate. Handle relocation of MIPS_EFI symbols special. Also,
add code to relocate objfile->sections data structure.
* remote.c (get_offsets): Use new protocol message to acquire
section offsets from the target.
* (remote_wait): Get rid of relocation stuff. That's all handled
by objfile_relocate now.
* config/alpha/alpha-nw.mt (TM_FILE): Use tm-alphanw.h.
* config/alpha/tm-alpha.h: Define CALL_DUMMY_ADDRESS, and
VM_MIN_ADDRESS.
* config/alpha/tm-alphanw.h: DECR_PC_AFTER_BREAK=0, VM_MIN_ADDRESS=0.
Diffstat (limited to 'gdb/minsyms.c')
-rw-r--r-- | gdb/minsyms.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/gdb/minsyms.c b/gdb/minsyms.c index ec72471..ff31f73 100644 --- a/gdb/minsyms.c +++ b/gdb/minsyms.c @@ -44,6 +44,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "symfile.h" #include "objfiles.h" #include "demangle.h" +#include "gdb-stabs.h" /* Accumulate the minimal symbols for each objfile in bunches of BUNCH_SIZE. At the end, copy them all into one newly allocated location on an objfile's @@ -327,7 +328,27 @@ prim_record_minimal_symbol_and_info (name, address, ms_type, info, section, SYMBOL_NAME (msymbol) = (char *) name; SYMBOL_INIT_LANGUAGE_SPECIFIC (msymbol, language_unknown); SYMBOL_VALUE_ADDRESS (msymbol) = address; - SYMBOL_SECTION (msymbol) = section; + if (section == -1) + switch (ms_type) + { + case mst_text: + case mst_file_text: + SYMBOL_SECTION (msymbol) = SECT_OFF_TEXT; + break; + case mst_data: + case mst_file_data: + SYMBOL_SECTION (msymbol) = SECT_OFF_DATA; + break; + case mst_bss: + case mst_file_bss: + SYMBOL_SECTION (msymbol) = SECT_OFF_BSS; + break; + default: + SYMBOL_SECTION (msymbol) = -1; + } + else + SYMBOL_SECTION (msymbol) = section; + MSYMBOL_TYPE (msymbol) = ms_type; /* FIXME: This info, if it remains, needs its own field. */ MSYMBOL_INFO (msymbol) = info; /* FIXME! */ |