aboutsummaryrefslogtreecommitdiff
path: root/gdb/minsyms.c
diff options
context:
space:
mode:
authorStu Grossman <grossman@cygnus>1994-03-21 19:57:38 +0000
committerStu Grossman <grossman@cygnus>1994-03-21 19:57:38 +0000
commit72bba93b85e2e8c887df447c4237d0e7c21d07d8 (patch)
tree9f5fb008f8a97b4b4acd26c64fd1802442d63b36 /gdb/minsyms.c
parent4fd5eed484d95b5a5647a0bba76533ba66cb57a3 (diff)
downloadgdb-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.c23
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! */