aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1995-08-22 05:43:30 +0000
committerJeff Law <law@redhat.com>1995-08-22 05:43:30 +0000
commitc85ff3a363117ea247ef7db49b123e42c118d4f8 (patch)
tree290b84a622239582ebcce13daa1b6630a31df3f7 /gdb
parent011d93b38d38b9cf1238ecd32ef2d2d7a4fb073f (diff)
downloadgdb-c85ff3a363117ea247ef7db49b123e42c118d4f8.zip
gdb-c85ff3a363117ea247ef7db49b123e42c118d4f8.tar.gz
gdb-c85ff3a363117ea247ef7db49b123e42c118d4f8.tar.bz2
* hppa-tdep.c (frame_chain_valid): Handle systems where "$START$"
calls "main" directly. (skip_prologue): Always assume arguments were saved into the stack since GCC will do so without setting the magic Args_Saved bit in the unwind descriptor.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/hppa-tdep.c10
2 files changed, 17 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 6a0b822..2e243b1 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+Mon Aug 21 23:39:56 1995 Jeff Law (law@snake.cs.utah.edu)
+
+ * hppa-tdep.c (frame_chain_valid): Handle systems where "$START$"
+ calls "main" directly.
+ (skip_prologue): Always assume arguments were saved into the stack
+ since GCC will do so without setting the magic Args_Saved bit in
+ the unwind descriptor.
+
Mon Aug 21 11:49:17 1995 Kung Hsu <kung@mexican.cygnus.com>
* remote-udi.c (udi_wait): Mask off high bits of stop reason.
diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c
index a508e11..4735baa 100644
--- a/gdb/hppa-tdep.c
+++ b/gdb/hppa-tdep.c
@@ -1132,6 +1132,14 @@ frame_chain_valid (chain, thisframe)
&& SYMBOL_VALUE_ADDRESS (msym_us) == SYMBOL_VALUE_ADDRESS (msym_start))
return 0;
+ /* Grrrr. Some new idiot decided that they don't want _start for the
+ PRO configurations; $START$ calls main directly.... Deal with it. */
+ msym_start = lookup_minimal_symbol ("$START$", NULL, NULL);
+ if (msym_us
+ && msym_start
+ && SYMBOL_VALUE_ADDRESS (msym_us) == SYMBOL_VALUE_ADDRESS (msym_start))
+ return 0;
+
next = get_next_frame (thisframe);
if (next)
next_u = find_unwind_entry (next->pc);
@@ -2302,7 +2310,7 @@ skip_prologue (pc)
/* An indication that args may be stored into the stack. Unfortunately
the HPUX compilers tend to set this in cases where no args were
stored too!. */
- args_stored = u->Args_stored;
+ args_stored = 1;
/* Turn the Entry_GR field into a bitmask. */
save_gr = 0;