diff options
author | Stu Grossman <grossman@cygnus> | 1992-12-28 23:19:51 +0000 |
---|---|---|
committer | Stu Grossman <grossman@cygnus> | 1992-12-28 23:19:51 +0000 |
commit | b5c10493e9666be2c7413ffcf712160d35246966 (patch) | |
tree | b2cba41a6e35b87294ec20c7c80baa525ddceb95 /gdb/tm-hppa.h | |
parent | edff05870e92c6ff6ff111c2f4adb1b4184a04d6 (diff) | |
download | gdb-b5c10493e9666be2c7413ffcf712160d35246966.zip gdb-b5c10493e9666be2c7413ffcf712160d35246966.tar.gz gdb-b5c10493e9666be2c7413ffcf712160d35246966.tar.bz2 |
* hppah-tdep.c (frame_saved_pc): Use better test for outermost
frame. Use find_return_regnum to find the caller.
* (find_unwind_entry): New routine to locate stack frame info
associated with a procedure. This looks in the $UNWIND_START$
section in the SOM file.
* (find_return_regnum): New routine. Uses find_unwind_entry() to
figure out where the caller's return address is stored.
* (find_proc_framesize): New routine. Uses find_unwind_entry()
to figure out the frame size for a procedure.
* (saved_pc_after_call): New routine, moved from tm-hppa.h.
* (init_extra_frame_info): New routine. Corrects PC and FP for
outermost frame if necessary.
* (frame_chain): New routine, moved from tm-hppa.h.
* (skip_trampoline_code): Handle computed function calls (ie:
calls from $$dyncall).
* (unwind_command): Temporary support function to allow user
to control/observe aspects of the unwind (stack frame) info.
* infcmd.c (read_pc): (Temporary), put a hack in to see if the PC
was in a system call, if so, then read the PC from r31.
* tm-hppah.h (SKIP_TRAMPOLINE_CODE, IN_SOLIB_TRAMPOLINE): Deal
with extra arg for skip_trampoline_code().
* (INIT_EXTRA_FRAME_INFO): Define to point at subr (see above).
* (FRAME_CHAIN, FRAME_CHAIN_VALID): Turn into real subroutines.
* tm-hppa.h (SAVED_PC_AFTER_CALL): Turn into real subroutine.
Diffstat (limited to 'gdb/tm-hppa.h')
-rw-r--r-- | gdb/tm-hppa.h | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/gdb/tm-hppa.h b/gdb/tm-hppa.h index 285e932..97cf7b4 100644 --- a/gdb/tm-hppa.h +++ b/gdb/tm-hppa.h @@ -75,11 +75,11 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* If PC is in some function-call trampoline code, return the PC where the function itself actually starts. If not, return NULL. */ -#define SKIP_TRAMPOLINE_CODE(pc) skip_trampoline_code (pc) +#define SKIP_TRAMPOLINE_CODE(pc) skip_trampoline_code (pc, NULL) /* Return non-zero if we are in some sort of a trampoline. */ -#define IN_SOLIB_TRAMPOLINE(pc,name) skip_trampoline_code (pc) +#define IN_SOLIB_TRAMPOLINE(pc, name) skip_trampoline_code (pc, name) /* Immediately after a function call, return the saved pc. Can't go through the frames for this because on some machines @@ -290,11 +290,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ ((regno) >= PCSQ_TAIL_REGNUM && (regno) < IPSW_REGNUM) || \ ((regno) > IPSW_REGNUM && (regno) < FP4_REGNUM) -/* This is a piece of magic that is given a register number REGNO - and as BLOCKEND the address in the system of the end of the user structure - and stores in ADDR the address in the kernel or core dump - of that register. */ - +#define INIT_EXTRA_FRAME_INFO(fromleaf, frame) init_extra_frame_info (fromleaf, frame) /* Describe the pointer in each stack frame to the previous stack frame (its caller). */ @@ -313,13 +309,12 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ is the address of a 4-byte word containing the calling frame's address (previous FP). */ -#define FRAME_CHAIN(thisframe) \ - (!inside_entry_file ((thisframe)->pc) ? \ - read_memory_integer ((thisframe)->frame, 4) :\ - 0) +#define FRAME_CHAIN(thisframe) frame_chain (thisframe) +#if 0 #define FRAME_CHAIN_VALID(chain, thisframe) \ frame_chain_valid (chain, thisframe) +#endif #define FRAME_CHAIN_COMBINE(chain, thisframe) (chain) |