aboutsummaryrefslogtreecommitdiff
path: root/gdb/dbxread.c
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1993-12-27 04:46:05 +0000
committerJeff Law <law@redhat.com>1993-12-27 04:46:05 +0000
commit2f8c3639faaa9af96a31364ef2600c5027a35ed2 (patch)
tree823bba4624f38564b42aff415f961f6762e3115c /gdb/dbxread.c
parentb02fd8caa2a3353799c4312e8f06a9f533569f5c (diff)
downloadfsf-binutils-gdb-2f8c3639faaa9af96a31364ef2600c5027a35ed2.zip
fsf-binutils-gdb-2f8c3639faaa9af96a31364ef2600c5027a35ed2.tar.gz
fsf-binutils-gdb-2f8c3639faaa9af96a31364ef2600c5027a35ed2.tar.bz2
* dbxread.c (process_one_symbol): Handle stabs-in-som just like
stabs-in-elf. (pastab_build_psymtabs): Likewise. * hppa-tdep.c: Change all comments to reference %r3 or frame pointer rather than %r4. (frame_chain, skip_prologue, dig_rp_from_stack): Handle %r3 as the frame pointer. * config/pa/tm-hppa.h (FP_REGNUM): Define as %r3. (FIND_FRAME_SAVED_REGS): Handle %r3 as frame pointer. (CALL_DUMMY): Likewise.
Diffstat (limited to 'gdb/dbxread.c')
-rw-r--r--gdb/dbxread.c49
1 files changed, 29 insertions, 20 deletions
diff --git a/gdb/dbxread.c b/gdb/dbxread.c
index 073e993..e6623b2 100644
--- a/gdb/dbxread.c
+++ b/gdb/dbxread.c
@@ -1545,7 +1545,8 @@ process_one_symbol (type, desc, valu, name, section_offsets, objfile)
since it would be silly to do things differently from Solaris), and
false for SunOS4 and other a.out file formats. */
block_address_function_relative =
- 0 == strncmp (bfd_get_target (objfile->obfd), "elf", 3);
+ (0 == strncmp (bfd_get_target (objfile->obfd), "elf", 3))
+ || (0 == strncmp (bfd_get_target (objfile->obfd), "som", 3));
if (!block_address_function_relative)
/* N_LBRAC, N_RBRAC and N_SLINE entries are not relative to the
@@ -1634,33 +1635,38 @@ process_one_symbol (type, desc, valu, name, section_offsets, objfile)
if (!VARIABLES_INSIDE_BLOCK(desc, processing_gcc_compilation))
local_symbols = new->locals;
- /* If this is not the outermost LBRAC...RBRAC pair in the
- function, its local symbols preceded it, and are the ones
- just recovered from the context stack. Defined the block for them.
-
- If this is the outermost LBRAC...RBRAC pair, there is no
- need to do anything; leave the symbols that preceded it
- to be attached to the function's own block. However, if
- it is so, we need to indicate that we just moved outside
- of the function. */
- if (local_symbols
- && (context_stack_depth
- > !VARIABLES_INSIDE_BLOCK(desc, processing_gcc_compilation)))
+ if (context_stack_depth
+ > !VARIABLES_INSIDE_BLOCK(desc, processing_gcc_compilation))
{
- /* FIXME Muzzle a compiler bug that makes end < start. */
- if (new->start_addr > valu)
+ /* This is not the outermost LBRAC...RBRAC pair in the function,
+ its local symbols preceded it, and are the ones just recovered
+ from the context stack. Define the block for them (but don't
+ bother if the block contains no symbols. Should we complain
+ on blocks without symbols? I can't think of any useful purpose
+ for them). */
+ if (local_symbols != NULL)
{
- complain (&lbrac_rbrac_complaint);
- new->start_addr = valu;
+ /* Muzzle a compiler bug that makes end < start. (which
+ compilers? Is this ever harmful?). */
+ if (new->start_addr > valu)
+ {
+ complain (&lbrac_rbrac_complaint);
+ new->start_addr = valu;
+ }
+ /* Make a block for the local symbols within. */
+ finish_block (0, &local_symbols, new->old_blocks,
+ new->start_addr, valu, objfile);
}
- /* Make a block for the local symbols within. */
- finish_block (0, &local_symbols, new->old_blocks,
- new->start_addr, valu, objfile);
}
else
{
+ /* This is the outermost LBRAC...RBRAC pair. There is no
+ need to do anything; leave the symbols that preceded it
+ to be attached to the function's own block. We need to
+ indicate that we just moved outside of the function. */
within_function = 0;
}
+
if (VARIABLES_INSIDE_BLOCK(desc, processing_gcc_compilation))
/* Now pop locals of block just finished. */
local_symbols = new->locals;
@@ -2157,6 +2163,9 @@ pastab_build_psymtabs (objfile, section_offsets, mainline)
free_header_files ();
init_header_files ();
+ /* This is needed to debug objects assembled with gas2. */
+ processing_acc_compilation = 1;
+
/* In a PA file, we've already installed the minimal symbols that came
from the PA (non-stab) symbol table, so always act like an
incremental load here. */