* hppa-tdep.c (frame_chain_valid): Handle systems where "$START$"
authorJeff Law <law@redhat.com>
Tue, 22 Aug 1995 05:43:30 +0000 (05:43 +0000)
committerJeff Law <law@redhat.com>
Tue, 22 Aug 1995 05:43:30 +0000 (05:43 +0000)
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.

gdb/ChangeLog
gdb/hppa-tdep.c

index 6a0b82238f9abd107ad9db932513f31326509c35..2e243b1665d080a331428940b73d2705c46b513e 100644 (file)
@@ -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.
index a508e11e7850615cd0257924c52537784a56c951..4735baa2818583c15bfacda8af008fd2f711bfec 100644 (file)
@@ -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;