diff options
Diffstat (limited to 'runtime/regs-ia64.c')
-rw-r--r-- | runtime/regs-ia64.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/runtime/regs-ia64.c b/runtime/regs-ia64.c index f884c5f8..c78a757e 100644 --- a/runtime/regs-ia64.c +++ b/runtime/regs-ia64.c @@ -36,8 +36,17 @@ static void ia64_stap_get_arbsp(struct unw_frame_info *info, void *arg) } /* - * bspcache: get cached unwound address and - * set a probe local cache of the offset of unwound address. + * bspcache: get cached unwound address from current BSP and + * set a static local cache of the offset of unwound address + * if the static local cache(variable) is not set. + * The unwound address means the BSP value when the kprobe + * was hit. This macro stores the difference of BSP between + * when the kprobe was hit and when this macro was called. + * Since the difference depends on how much stack is consumed + * from when the kprobe was hit, this macro *MUST NOT* be put + * on the path which several functions execute (in that case, + * each time the difference is changed and this macro can't + * return correct unwound address). */ #define bspcache(cache, regs)\ if(regs) {\ |