From 2c4044904891e47007a5d189880dbc9eee384005 Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Fri, 2 May 2008 17:24:50 +0000 Subject: * arm-tdep.c (arm_prologue_this_id): Compare pc, not func, to lowest_pc. --- gdb/ChangeLog | 5 +++++ gdb/arm-tdep.c | 11 +++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9c9e09b..d3bdbcc 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2008-05-02 Daniel Jacobowitz + + * arm-tdep.c (arm_prologue_this_id): Compare pc, not func, to + lowest_pc. + 2008-05-02 Jim Blandy Pedro Alves diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index 0380dcd..fa7a3e8 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -981,23 +981,22 @@ arm_prologue_this_id (struct frame_info *this_frame, { struct arm_prologue_cache *cache; struct frame_id id; - CORE_ADDR func; + CORE_ADDR pc, func; if (*this_cache == NULL) *this_cache = arm_make_prologue_cache (this_frame); cache = *this_cache; - func = get_frame_func (this_frame); - - /* This is meant to halt the backtrace at "_start". Make sure we - don't halt it at a generic dummy frame. */ - if (func <= gdbarch_tdep (get_frame_arch (this_frame))->lowest_pc) + /* This is meant to halt the backtrace at "_start". */ + pc = get_frame_pc (this_frame); + if (pc <= gdbarch_tdep (get_frame_arch (this_frame))->lowest_pc) return; /* If we've hit a wall, stop. */ if (cache->prev_sp == 0) return; + func = get_frame_func (this_frame); id = frame_id_build (cache->prev_sp, func); *this_id = id; } -- cgit v1.1