Skip to content
Snippets Groups Projects
Commit 81f8a206 authored by Andrew Cagney's avatar Andrew Cagney
Browse files

2003-04-10 Andrew Cagney <cagney@redhat.com>

	* d10v-tdep.c (d10v_frame_this_id): Set the code addr to the
	frame's function's address.  Simplify.
	(d10v_frame_unwind_cache): Check that the frame's function is
	non-zero.
parent 05760fd2
No related branches found
No related tags found
No related merge requests found
2003-04-10 Andrew Cagney <cagney@redhat.com>
* d10v-tdep.c (d10v_frame_this_id): Set the code addr to the
frame's function's address. Simplify.
(d10v_frame_unwind_cache): Check that the frame's function is
non-zero.
2003-04-10 Jim Blandy <jimb@redhat.com> 2003-04-10 Jim Blandy <jimb@redhat.com>
* s390-tdep.c (s390_gdbarch_init): Put back accidentally deleted * s390-tdep.c (s390_gdbarch_init): Put back accidentally deleted
......
...@@ -710,7 +710,7 @@ d10v_frame_unwind_cache (struct frame_info *next_frame, ...@@ -710,7 +710,7 @@ d10v_frame_unwind_cache (struct frame_info *next_frame,
info->uses_frame = 0; info->uses_frame = 0;
for (pc = frame_func_unwind (next_frame); for (pc = frame_func_unwind (next_frame);
pc < frame_pc_unwind (next_frame); pc > 0 && pc < frame_pc_unwind (next_frame);
pc += 4) pc += 4)
{ {
op = (unsigned long) read_memory_integer (pc, 4); op = (unsigned long) read_memory_integer (pc, 4);
...@@ -1440,14 +1440,15 @@ d10v_frame_this_id (struct frame_info *next_frame, ...@@ -1440,14 +1440,15 @@ d10v_frame_this_id (struct frame_info *next_frame,
struct d10v_unwind_cache *info struct d10v_unwind_cache *info
= d10v_frame_unwind_cache (next_frame, this_prologue_cache); = d10v_frame_unwind_cache (next_frame, this_prologue_cache);
CORE_ADDR base; CORE_ADDR base;
CORE_ADDR pc; CORE_ADDR func;
struct frame_id id;
/* The PC is easy. */ /* The FUNC is easy. */
pc = frame_pc_unwind (next_frame); func = frame_func_unwind (next_frame);
/* This is meant to halt the backtrace at "_start". Make sure we /* This is meant to halt the backtrace at "_start". Make sure we
don't halt it at a generic dummy frame. */ don't halt it at a generic dummy frame. */
if (pc == IMEM_START || pc <= IMEM_START || inside_entry_file (pc)) if (func <= IMEM_START || inside_entry_file (func))
return; return;
/* Hopefully the prologue analysis either correctly determined the /* Hopefully the prologue analysis either correctly determined the
...@@ -1457,17 +1458,18 @@ d10v_frame_this_id (struct frame_info *next_frame, ...@@ -1457,17 +1458,18 @@ d10v_frame_this_id (struct frame_info *next_frame,
if (base == STACK_START || base == 0) if (base == STACK_START || base == 0)
return; return;
id = frame_id_build (base, func);
/* Check that we're not going round in circles with the same frame /* Check that we're not going round in circles with the same frame
ID (but avoid applying the test to sentinel frames which do go ID (but avoid applying the test to sentinel frames which do go
round in circles). Can't use frame_id_eq() as that doesn't yet round in circles). Can't use frame_id_eq() as that doesn't yet
compare the frame's PC value. */ compare the frame's PC value. */
if (frame_relative_level (next_frame) >= 0 if (frame_relative_level (next_frame) >= 0
&& get_frame_type (next_frame) != DUMMY_FRAME && get_frame_type (next_frame) != DUMMY_FRAME
&& get_frame_pc (next_frame) == pc && frame_id_eq (get_frame_id (next_frame), id))
&& get_frame_base (next_frame) == base)
return; return;
(*this_id) = frame_id_build (base, pc); (*this_id) = id;
} }
static void static void
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment