aboutsummaryrefslogtreecommitdiff
path: root/gdb/frame.c
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2007-11-02 14:47:28 +0000
committerUlrich Weigand <uweigand@de.ibm.com>2007-11-02 14:47:28 +0000
commit09a7aba80a6e7a4a6e6cce7f877bcecf7a146919 (patch)
treec950170d262ad8f374d69d22da57893ca483c447 /gdb/frame.c
parentd93859e2e8495bc510108127f76a5cbca589ad81 (diff)
downloadgdb-09a7aba80a6e7a4a6e6cce7f877bcecf7a146919.zip
gdb-09a7aba80a6e7a4a6e6cce7f877bcecf7a146919.tar.gz
gdb-09a7aba80a6e7a4a6e6cce7f877bcecf7a146919.tar.bz2
2007-11-02 Markus Deuling <deuling@de.ibm.com>
* frame.c (frame_id_inner): Add gdbarch parameter. Replace current_gdbarch by gdbarch. (frame_find_by_id, get_prev_frame_1): Use get_frame_arch to get at the current architecture by frame_info. * frame.h (frame_id_inner): Add gdbarch parameter. * stack.c (return_command): Use get_frame_arch to get at the current architecture by frame_info. Update call of frame_id_inner. * infrun.c (handle_inferior_event): Likewise. * dummy-frame.c (dummy_frame_push): Use get_regcache_arch to get at the current architecture by regcache. Update call of frame_id_inner.
Diffstat (limited to 'gdb/frame.c')
-rw-r--r--gdb/frame.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/gdb/frame.c b/gdb/frame.c
index 1a7c87f..5bf419e 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -369,7 +369,7 @@ frame_id_eq (struct frame_id l, struct frame_id r)
}
int
-frame_id_inner (struct frame_id l, struct frame_id r)
+frame_id_inner (struct gdbarch *gdbarch, struct frame_id l, struct frame_id r)
{
int inner;
if (!l.stack_addr_p || !r.stack_addr_p)
@@ -380,7 +380,7 @@ frame_id_inner (struct frame_id l, struct frame_id r)
comment in "frame.h", there is some fuzz here. Frameless
functions are not strictly inner than (same .stack but
different .code and/or .special address). */
- inner = gdbarch_inner_than (current_gdbarch, l.stack_addr, r.stack_addr);
+ inner = gdbarch_inner_than (gdbarch, l.stack_addr, r.stack_addr);
if (frame_debug)
{
fprintf_unfiltered (gdb_stdlog, "{ frame_id_inner (l=");
@@ -410,7 +410,7 @@ frame_find_by_id (struct frame_id id)
if (frame_id_eq (id, this))
/* An exact match. */
return frame;
- if (frame_id_inner (id, this))
+ if (frame_id_inner (get_frame_arch (frame), id, this))
/* Gone to far. */
return NULL;
/* Either we're not yet gone far enough out along the frame
@@ -1175,7 +1175,8 @@ get_prev_frame_1 (struct frame_info *this_frame)
go backwards) and sentinel frames (the test is meaningless). */
if (this_frame->next->level >= 0
&& this_frame->next->unwind->type != SIGTRAMP_FRAME
- && frame_id_inner (this_id, get_frame_id (this_frame->next)))
+ && frame_id_inner (get_frame_arch (this_frame), this_id,
+ get_frame_id (this_frame->next)))
{
if (frame_debug)
{