diff options
author | Luis Rascao <luis.rascao@miniclip.com> | 2019-09-13 14:51:33 +0100 |
---|---|---|
committer | Luis Rascao <luis.rascao@miniclip.com> | 2019-09-17 08:49:33 +0100 |
commit | cf766a6e82e07e520c98f087965f024e76dac0dd (patch) | |
tree | 8a60090007bf64b2f77ce574c9feb813cf79a954 /erts/emulator/beam/beam_emu.c | |
parent | 40323104481d0813da9286e786af7f43a336b916 (diff) | |
download | erlang-cf766a6e82e07e520c98f087965f024e76dac0dd.tar.gz |
Add missing dtrace return invocations
Some return paths were not going through dtrace
hooks so no function-return probes were being triggered
on dtrace/systemtap.
The return probe will now inform the user of which function
it returns *from* as opposed the previous behaviour of
informing where it returns *to*.
Diffstat (limited to 'erts/emulator/beam/beam_emu.c')
-rw-r--r-- | erts/emulator/beam/beam_emu.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/erts/emulator/beam/beam_emu.c b/erts/emulator/beam/beam_emu.c index e8a0c666e3..ee70b138e5 100644 --- a/erts/emulator/beam/beam_emu.c +++ b/erts/emulator/beam/beam_emu.c @@ -437,10 +437,10 @@ init_emulator(void) } \ } while(0) -#define DTRACE_RETURN_FROM_PC(p) \ +#define DTRACE_RETURN_FROM_PC(p, i) \ do { \ ErtsCodeMFA* cmfa; \ - if (DTRACE_ENABLED(function_return) && (cmfa = find_function_from_pc(cp_val((p)->stop[0])))) { \ + if (DTRACE_ENABLED(function_return) && (cmfa = find_function_from_pc(i))) { \ DTRACE_RETURN((p), cmfa); \ } \ } while(0) @@ -450,7 +450,7 @@ init_emulator(void) #define DTRACE_GLOBAL_CALL(p, mfa) do {} while (0) #define DTRACE_GLOBAL_CALL_FROM_EXPORT(p, e) do {} while (0) #define DTRACE_RETURN(p, mfa) do {} while (0) -#define DTRACE_RETURN_FROM_PC(p) do {} while (0) +#define DTRACE_RETURN_FROM_PC(p, i) do {} while (0) #define DTRACE_BIF_ENTRY(p, mfa) do {} while (0) #define DTRACE_BIF_RETURN(p, mfa) do {} while (0) #define DTRACE_NIF_ENTRY(p, mfa) do {} while (0) |