* dwarf2-frame-tailcall.c: Include dwarf2-frame.h.
	(dwarf2_tailcall_prev_register_first): Use dwarf2_frame_cfa.
	(dwarf2_tailcall_sniffer_first): Remove variable pc_regnum.  Replace
	gdbarch_pc_regnum and frame_unwind_register_unsigned by
	gdbarch_unwind_pc.
This commit is contained in:
Jan Kratochvil 2011-10-20 23:57:23 +00:00
parent 460c1c54b4
commit 13294f7d62
2 changed files with 13 additions and 6 deletions

View File

@ -1,3 +1,12 @@
2011-10-20 Jan Kratochvil <jan.kratochvil@redhat.com>
Ulrich Weigand <uweigand@de.ibm.com>
* dwarf2-frame-tailcall.c: Include dwarf2-frame.h.
(dwarf2_tailcall_prev_register_first): Use dwarf2_frame_cfa.
(dwarf2_tailcall_sniffer_first): Remove variable pc_regnum. Replace
gdbarch_pc_regnum and frame_unwind_register_unsigned by
gdbarch_unwind_pc.
2011-10-20 Cary Coutant <ccoutant@google.com>
* dwarf2read.c (dw2_get_file_names): Move adjustment for type

View File

@ -29,6 +29,7 @@
#include "gdbtypes.h"
#include "regcache.h"
#include "value.h"
#include "dwarf2-frame.h"
/* Contains struct tailcall_cache indexed by next_bottom_frame. */
static htab_t cache_htab;
@ -280,7 +281,7 @@ dwarf2_tailcall_prev_register_first (struct frame_info *this_frame,
if (next_levels == cache->chain_levels - 1)
addr = cache->prev_sp;
else
addr = get_frame_base (this_frame) - cache->entry_cfa_sp_offset;
addr = dwarf2_frame_cfa (this_frame) - cache->entry_cfa_sp_offset;
}
else
return NULL;
@ -380,15 +381,12 @@ dwarf2_tailcall_sniffer_first (struct frame_info *this_frame,
/* Catch any unwinding errors. */
TRY_CATCH (except, RETURN_MASK_ERROR)
{
int pc_regnum, sp_regnum;
int sp_regnum;
prev_gdbarch = frame_unwind_arch (this_frame);
pc_regnum = gdbarch_pc_regnum (prev_gdbarch);
if (pc_regnum == -1)
break;
/* Simulate frame_unwind_pc without setting this_frame->prev_pc.p. */
prev_pc = frame_unwind_register_unsigned (this_frame, pc_regnum);
prev_pc = gdbarch_unwind_pc (prev_gdbarch, this_frame);
/* call_site_find_chain can throw an exception. */
chain = call_site_find_chain (prev_gdbarch, prev_pc, this_pc);