diff options
author | Andrew Cagney <cagney@redhat.com> | 2004-07-20 15:11:37 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2004-07-20 15:11:37 +0000 |
commit | 2cd8546d1321946294f6c89cdfb250a7de50f99d (patch) | |
tree | 77cf2b4bed624e2cc61b1f00caa2cccb7f6b39e7 /gdb/tramp-frame.h | |
parent | e12904d27fcfac19123e57e6cb606045e7e829b9 (diff) | |
download | gdb-2cd8546d1321946294f6c89cdfb250a7de50f99d.zip gdb-2cd8546d1321946294f6c89cdfb250a7de50f99d.tar.gz gdb-2cd8546d1321946294f6c89cdfb250a7de50f99d.tar.bz2 |
2004-07-20 Andrew Cagney <cagney@gnu.org>
* tramp-frame.h (struct tramp_frame): Change "insn" to a struct
containing both bytes and mask. Add "frame_type".
* tramp-frame.c (tramp_frame_start): Update.
(tramp_frame_prepend_unwinder): Update.
* mips-linux-tdep.c (mips_linux_o32_sigframe)
(mips_linux_o32_rt_sigframe, mips_linux_n32_rt_sigframe)
(mips_linux_n64_rt_sigframe): Update. Make "static const".
* ppcnbsd-tdep.c (tramp_frame ppcnbsd_sigtramp): Update.
Diffstat (limited to 'gdb/tramp-frame.h')
-rw-r--r-- | gdb/tramp-frame.h | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/gdb/tramp-frame.h b/gdb/tramp-frame.h index 26d4178..9244701 100644 --- a/gdb/tramp-frame.h +++ b/gdb/tramp-frame.h @@ -22,6 +22,8 @@ #ifndef TRAMP_FRAME_H #define TRAMP_FRAME_H +#include "frame.h" /* For "enum frame_type". */ + struct trad_frame; struct frame_info; struct trad_frame_cache; @@ -45,16 +47,24 @@ struct trad_frame_cache; struct tramp_frame { - /* The trampoline's entire instruction sequence. Search for this in - the inferior at or around the frame's PC. It is assumed that the - PC is INSN_SIZE aligned, and that each element of TRAMP contains - one INSN_SIZE instruction. It is also assumed that TRAMP[0] - contains the first instruction of the trampoline and hence the - address of the instruction matching TRAMP[0] is the trampoline's - "func" address. The instruction sequence shall be terminated by + /* The trampoline's type, some a signal trampolines, some are normal + call-frame trampolines (aka thunks). */ + enum frame_type frame_type; + /* The trampoline's entire instruction sequence. It consists of a + bytes/mask pair. Search for this in the inferior at or around + the frame's PC. It is assumed that the PC is INSN_SIZE aligned, + and that each element of TRAMP contains one INSN_SIZE + instruction. It is also assumed that INSN[0] contains the first + instruction of the trampoline and hence the address of the + instruction matching INSN[0] is the trampoline's "func" address. + The instruction sequence is terminated by TRAMP_SENTINEL_INSN. */ int insn_size; - ULONGEST insn[8]; + struct + { + ULONGEST bytes; + ULONGEST mask; + } insn[8]; /* Initialize a trad-frame cache corresponding to the tramp-frame. FUNC is the address of the instruction TRAMP[0] in memory. */ void (*init) (const struct tramp_frame *self, |