diff options
author | Björn Gustavsson <[email protected]> | 2019-04-08 15:00:06 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2019-04-08 16:25:01 +0200 |
commit | 9dca10bd14a3ee5b2e491e8249f3d5de7b5a116c (patch) | |
tree | d6f50ee46ecbb912fb3cf72262c3501229ab0185 /erts/emulator/beam/beam_debug.c | |
parent | f93862d2fe7e994523b1a6b2ca99635a4cf5bba3 (diff) | |
download | otp-9dca10bd14a3ee5b2e491e8249f3d5de7b5a116c.tar.gz otp-9dca10bd14a3ee5b2e491e8249f3d5de7b5a116c.tar.bz2 otp-9dca10bd14a3ee5b2e491e8249f3d5de7b5a116c.zip |
Add erts_debug:interpreter_size/0
Add erts_debug:interpreter_size/0 for retrieving the approximate
size of the BEAM interpreter (process_main()).
Diffstat (limited to 'erts/emulator/beam/beam_debug.c')
-rw-r--r-- | erts/emulator/beam/beam_debug.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/erts/emulator/beam/beam_debug.c b/erts/emulator/beam/beam_debug.c index 762c5da9be..4d52435139 100644 --- a/erts/emulator/beam/beam_debug.c +++ b/erts/emulator/beam/beam_debug.c @@ -353,6 +353,22 @@ erts_debug_disassemble_1(BIF_ALIST_1) return TUPLE3(hp, addr, bin, mfa); } +BIF_RETTYPE +erts_debug_interpreter_size_0(BIF_ALIST_0) +{ + int i; + BeamInstr low, high; + + low = high = (BeamInstr) process_main; + for (i = 0; i < NUM_SPECIFIC_OPS; i++) { + BeamInstr a = BeamOpCodeAddr(i); + if (a > high) { + high = a; + } + } + return erts_make_integer(high - low, BIF_P); +} + void dbg_bt(Process* p, Eterm* sp) { |