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/infcmd.c | |
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/infcmd.c')
-rw-r--r-- | gdb/infcmd.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/infcmd.c b/gdb/infcmd.c index c190ffe..05d2214 100644 --- a/gdb/infcmd.c +++ b/gdb/infcmd.c @@ -877,6 +877,13 @@ path_command (dirname, from_tty) CORE_ADDR read_pc () { +#if GDB_TARGET_IS_HPPA + int flags = read_register(FLAGS_REGNUM); + + if (flags & 2) + return read_register(31) & ~0x3; +#endif + return ADDR_BITS_REMOVE ((CORE_ADDR) read_register (PC_REGNUM)); } |