* dwarf2-frame.c (dwarf2_frame_cache, dwarf2_frame_this_id)

(dwarf2_frame_sniffer): Update.
	(dwarf2_signal_frame_this_id): New function.
	(dwarf2_signal_frame_unwind): Use it.
	(dwarf2_frame_base_sniffer): Use frame_unwind_address_in_block.
	* frame.c (frame_func_unwind): Add this_type argument.
	(get_frame_func): Update.
	(frame_unwind_address_in_block): Add this_type argument and check it.
	Fix a typo.
	(get_frame_address_in_block): Update.
	* frame.h (enum frame_type): Move higher in the file.
	(frame_unwind_address_in_block, frame_func_unwind): Add enum frame_type
	argument.

	* alpha-mdebug-tdep.c, alpha-tdep.c, amd64-tdep.c, amd64obsd-tdep.c,
	arm-tdep.c, avr-tdep.c, cris-tdep.c, frv-tdep.c, h8300-tdep.c,
	hppa-tdep.c, i386-tdep.c, i386obsd-tdep.c, ia64-tdep.c,
	libunwind-frame.c, m32c-tdep.c, m32r-linux-tdep.c, m32r-tdep.c,
	m68hc11-tdep.c, m68k-tdep.c, m88k-tdep.c, mips-mdebug-tdep.c,
	mips-tdep.c, mn10300-tdep.c, mt-tdep.c, rs6000-tdep.c, s390-tdep.c,
	score-tdep.c, sh-tdep.c, sh64-tdep.c, sparc-tdep.c,
	sparc64obsd-tdep.c, spu-tdep.c, v850-tdep.c, vax-tdep.c,
	xstormy16-tdep.c, xtensa-tdep.c: Update calls to
	frame_func_unwind and frame_unwind_address_in_block to specify
	the frame type.  Use frame_unwind_address_in_block instead of
	frame_pc_unwind in sniffers.

	* gdb.arch/i386-signal.c, gdb.arch/i386-signal.exp: New files.
This commit is contained in:
Daniel Jacobowitz
2007-02-27 20:17:19 +00:00
parent 206415a3ea
commit 93d42b302e
43 changed files with 313 additions and 111 deletions

View File

@@ -246,7 +246,8 @@ alpha_mdebug_frame_this_id (struct frame_info *next_frame,
struct alpha_mdebug_unwind_cache *info
= alpha_mdebug_frame_unwind_cache (next_frame, this_prologue_cache);
*this_id = frame_id_build (info->vfp, frame_func_unwind (next_frame));
*this_id = frame_id_build (info->vfp,
frame_func_unwind (next_frame, NORMAL_FRAME));
}
/* Retrieve the value of REGNUM in FRAME. Don't give up! */
@@ -311,7 +312,7 @@ static const struct frame_unwind alpha_mdebug_frame_unwind = {
const struct frame_unwind *
alpha_mdebug_frame_sniffer (struct frame_info *next_frame)
{
CORE_ADDR pc = frame_pc_unwind (next_frame);
CORE_ADDR pc = frame_unwind_address_in_block (next_frame, NORMAL_FRAME);
struct mdebug_extra_func_info *proc_desc;
/* If this PC does not map to a PDR, then clearly this isn't an
@@ -368,7 +369,7 @@ static const struct frame_base alpha_mdebug_frame_base = {
static const struct frame_base *
alpha_mdebug_frame_base_sniffer (struct frame_info *next_frame)
{
CORE_ADDR pc = frame_pc_unwind (next_frame);
CORE_ADDR pc = frame_unwind_address_in_block (next_frame, NORMAL_FRAME);
struct mdebug_extra_func_info *proc_desc;
/* If this PC does not map to a PDR, then clearly this isn't an