From 6cf0748b5ac7bd32f8d338224b843e419b1ea7c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 23 May 2018 16:54:14 +0200 Subject: On native releases, make name() return the current pid Because current_stacktrace is not always accurate and I have not figured out how to make it accurate yet. --- src/ct_helper.erl | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/ct_helper.erl b/src/ct_helper.erl index 22a6be6..e1b4ab3 100644 --- a/src/ct_helper.erl +++ b/src/ct_helper.erl @@ -159,9 +159,19 @@ make_certs_in_ets() -> ok. %% @doc Return the name of the calling function. +%% +%% With a native VM we always return the current pid because +%% the stacktrace is not as well maintained and may not return +%% the correct function name, especially when there is a mix +%% of normal and native code. name() -> - element(2, hd(tl(element(2, process_info(self(), current_stacktrace))))). + case code:is_module_native(kernel) of + true -> + self(); + false -> + element(2, hd(tl(element(2, process_info(self(), current_stacktrace))))) + end. %% @doc Start and stop applications and their dependencies. -- cgit v1.2.3