gdb/
* 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:
parent
460c1c54b4
commit
13294f7d62
|
@ -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>
|
2011-10-20 Cary Coutant <ccoutant@google.com>
|
||||||
|
|
||||||
* dwarf2read.c (dw2_get_file_names): Move adjustment for type
|
* dwarf2read.c (dw2_get_file_names): Move adjustment for type
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include "gdbtypes.h"
|
#include "gdbtypes.h"
|
||||||
#include "regcache.h"
|
#include "regcache.h"
|
||||||
#include "value.h"
|
#include "value.h"
|
||||||
|
#include "dwarf2-frame.h"
|
||||||
|
|
||||||
/* Contains struct tailcall_cache indexed by next_bottom_frame. */
|
/* Contains struct tailcall_cache indexed by next_bottom_frame. */
|
||||||
static htab_t cache_htab;
|
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)
|
if (next_levels == cache->chain_levels - 1)
|
||||||
addr = cache->prev_sp;
|
addr = cache->prev_sp;
|
||||||
else
|
else
|
||||||
addr = get_frame_base (this_frame) - cache->entry_cfa_sp_offset;
|
addr = dwarf2_frame_cfa (this_frame) - cache->entry_cfa_sp_offset;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -380,15 +381,12 @@ dwarf2_tailcall_sniffer_first (struct frame_info *this_frame,
|
||||||
/* Catch any unwinding errors. */
|
/* Catch any unwinding errors. */
|
||||||
TRY_CATCH (except, RETURN_MASK_ERROR)
|
TRY_CATCH (except, RETURN_MASK_ERROR)
|
||||||
{
|
{
|
||||||
int pc_regnum, sp_regnum;
|
int sp_regnum;
|
||||||
|
|
||||||
prev_gdbarch = frame_unwind_arch (this_frame);
|
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. */
|
/* 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. */
|
/* call_site_find_chain can throw an exception. */
|
||||||
chain = call_site_find_chain (prev_gdbarch, prev_pc, this_pc);
|
chain = call_site_find_chain (prev_gdbarch, prev_pc, this_pc);
|
||||||
|
|
Loading…
Reference in New Issue