* 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.
This commit is contained in:
Jeff Law
1995-08-22 05:43:30 +00:00
parent 011d93b38d
commit c85ff3a363
2 changed files with 17 additions and 1 deletions

View 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> 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. * remote-udi.c (udi_wait): Mask off high bits of stop reason.

View File

@ -1132,6 +1132,14 @@ frame_chain_valid (chain, thisframe)
&& SYMBOL_VALUE_ADDRESS (msym_us) == SYMBOL_VALUE_ADDRESS (msym_start)) && SYMBOL_VALUE_ADDRESS (msym_us) == SYMBOL_VALUE_ADDRESS (msym_start))
return 0; 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); next = get_next_frame (thisframe);
if (next) if (next)
next_u = find_unwind_entry (next->pc); 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 /* An indication that args may be stored into the stack. Unfortunately
the HPUX compilers tend to set this in cases where no args were the HPUX compilers tend to set this in cases where no args were
stored too!. */ stored too!. */
args_stored = u->Args_stored; args_stored = 1;
/* Turn the Entry_GR field into a bitmask. */ /* Turn the Entry_GR field into a bitmask. */
save_gr = 0; save_gr = 0;