diff options
Diffstat (limited to 'libsframe/testsuite/libsframe.stacktrace/libsframest/sframe-stacktrace.c')
-rw-r--r-- | libsframe/testsuite/libsframe.stacktrace/libsframest/sframe-stacktrace.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/libsframe/testsuite/libsframe.stacktrace/libsframest/sframe-stacktrace.c b/libsframe/testsuite/libsframe.stacktrace/libsframest/sframe-stacktrace.c index 52ceb86..2893e17 100644 --- a/libsframe/testsuite/libsframe.stacktrace/libsframest/sframe-stacktrace.c +++ b/libsframe/testsuite/libsframe.stacktrace/libsframest/sframe-stacktrace.c @@ -166,9 +166,12 @@ sframe_unwind (struct sframest_ctx *sf, void **ra_lst, int *ra_size) /* Check if need to update the SFrame stack trace info for the return addr. */ - sfinfo = sframest_update_sfinfo (sf, sfinfo, return_addr); - if (!sfinfo || !sfinfo->dctx) - return sframe_bt_ret_set_errno (&err, SFRAME_BT_ERR_DECODE); + if (!sframest_sfinfo_addr_range_p (sfinfo, return_addr)) + { + sfinfo = sframest_get_sfinfo (sf, pc); + if (!sfinfo || !sfinfo->dctx) + return sframe_bt_ret_set_errno (&err, SFRAME_BT_ERR_DECODE); + } } else { |