aboutsummaryrefslogtreecommitdiff
path: root/gdb/arm-tdep.c
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2008-05-02 17:24:50 +0000
committerDaniel Jacobowitz <drow@false.org>2008-05-02 17:24:50 +0000
commit2c4044904891e47007a5d189880dbc9eee384005 (patch)
treef7f842bcc7ecb41ad94a3e2b2b4d1bccc5cf3037 /gdb/arm-tdep.c
parentf1f8f695c0b509617985d96559c940664c01334b (diff)
downloadgdb-2c4044904891e47007a5d189880dbc9eee384005.zip
gdb-2c4044904891e47007a5d189880dbc9eee384005.tar.gz
gdb-2c4044904891e47007a5d189880dbc9eee384005.tar.bz2
* arm-tdep.c (arm_prologue_this_id): Compare pc, not func, to
lowest_pc.
Diffstat (limited to 'gdb/arm-tdep.c')
-rw-r--r--gdb/arm-tdep.c11
1 files changed, 5 insertions, 6 deletions
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;
}