diff options
author | Håkan Mattsson <[email protected]> | 2016-11-02 12:56:39 +0100 |
---|---|---|
committer | Håkan Mattsson <[email protected]> | 2016-12-12 16:40:29 +0100 |
commit | 2f8d59aa9e8a96d094172db339fd94aae45a90b5 (patch) | |
tree | 963d90abce0d57dd204c9d526b476c830afb9d5b /erts/emulator/beam | |
parent | b47d104994c6f11301f23b0675ed5f06f3e25922 (diff) | |
download | otp-2f8d59aa9e8a96d094172db339fd94aae45a90b5.tar.gz otp-2f8d59aa9e8a96d094172db339fd94aae45a90b5.tar.bz2 otp-2f8d59aa9e8a96d094172db339fd94aae45a90b5.zip |
erts: Make depth of current_stacktrace configurable
The BIF process_info(Pid, current_stacktrace) truncates the
stacktrace. The old behavior was to truncate long stacktraces to max
8 items. And this was hard coded. Now it is truncated to the value of
system_flag(backtrace_depth) instead. The backtrace_depth defaults to
8, but is configurable.
Diffstat (limited to 'erts/emulator/beam')
-rw-r--r-- | erts/emulator/beam/erl_bif_info.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/erts/emulator/beam/erl_bif_info.c b/erts/emulator/beam/erl_bif_info.c index 735aabbee3..88a052cad7 100644 --- a/erts/emulator/beam/erl_bif_info.c +++ b/erts/emulator/beam/erl_bif_info.c @@ -1672,11 +1672,11 @@ current_stacktrace(Process* p, Process* rp, Eterm** hpp) Eterm mfa; Eterm res = NIL; - depth = 8; + depth = erts_backtrace_depth; sz = offsetof(struct StackTrace, trace) + sizeof(BeamInstr *)*depth; s = (struct StackTrace *) erts_alloc(ERTS_ALC_T_TMP, sz); s->depth = 0; - if (rp->i) { + if (depth > 0 && rp->i) { s->trace[s->depth++] = rp->i; depth--; } |