X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Frecord-btrace.c;h=b216f1f9cad724eecb923fd9d89f13066f068a81;hb=2d7cc5c7973b6d1bdd9205288863bedadeaf8b41;hp=41f95b3596a4188c4cf5677afcf2b860076c4c44;hpb=42bfe59e3a3fef26be6809168756f40740fac1d0;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c index 41f95b3596..b216f1f9ca 100644 --- a/gdb/record-btrace.c +++ b/gdb/record-btrace.c @@ -1584,6 +1584,7 @@ record_btrace_frame_this_id (struct frame_info *this_frame, void **this_cache, { const struct btrace_frame_cache *cache; const struct btrace_function *bfun; + struct btrace_call_iterator it; CORE_ADDR code, special; cache = (const struct btrace_frame_cache *) *this_cache; @@ -1591,8 +1592,8 @@ record_btrace_frame_this_id (struct frame_info *this_frame, void **this_cache, bfun = cache->bfun; gdb_assert (bfun != NULL); - while (bfun->segment.prev != NULL) - bfun = bfun->segment.prev; + while (btrace_find_call_by_number (&it, &cache->tp->btrace, bfun->prev) != 0) + bfun = btrace_call_get (&it); code = get_frame_func (this_frame); special = bfun->number; @@ -1680,7 +1681,7 @@ record_btrace_frame_sniffer (const struct frame_unwind *self, replay = tp->btrace.replay; if (replay != NULL) - bfun = replay->btinfo->functions[replay->call_index]; + bfun = &replay->btinfo->functions[replay->call_index]; } else {