aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_nif.c
diff options
context:
space:
mode:
authorErlang/OTP <[email protected]>2010-06-04 14:01:56 +0000
committerErlang/OTP <[email protected]>2010-06-04 14:01:56 +0000
commit5e354ca66996ee03d615dc36c284e94ccf176e89 (patch)
treecce028987420702d213a751d03f1cd3683c4bed5 /erts/emulator/beam/erl_nif.c
parentfa66eb731b85726970cc4c581d32ebdc2ebb965e (diff)
parent63751e0554dfb35a63d572aaca2f1fc37e1c12fe (diff)
downloadotp-5e354ca66996ee03d615dc36c284e94ccf176e89.tar.gz
otp-5e354ca66996ee03d615dc36c284e94ccf176e89.tar.bz2
otp-5e354ca66996ee03d615dc36c284e94ccf176e89.zip
Merge branch 'egil/call-time-trace-patterns' into dev
* egil/call-time-trace-patterns: Fix ops.tab to include i_return_time_trace Let trace_call_time_SUITE scheduling test be more relaxed Add documentation for call time breakpoints Fix bp_hash_put to do hash value after rehash Extend trace_call_time_SUITE with bif-tests Fix assertion in trace_pattern for bifs Teach erlang:system_info/1 to list snifs Add bif tests to call time trace tests Teach call time trace patterns to include bifs Fix BeamInstr code array in export.h Add trace call_time tests for nifs and bifs Teach call count tracing to use atomics Add first phase of trace call time test suite Add a scheduler array for BpData at BeamInstr[-4] Add search keys in breakpoints and a searchfunction Fix BeamInstr for call_time Teach call_time trace to use intruction pointers Add return_time trace and PSD deletions Remove trailing character in beam_bif_load Fix set_function_break to use correct breakpoint ... OTP-8677 egil/call-time-trace-patterns
Diffstat (limited to 'erts/emulator/beam/erl_nif.c')
-rw-r--r--erts/emulator/beam/erl_nif.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_nif.c b/erts/emulator/beam/erl_nif.c
index 75de00d4c1..3d63fa1caf 100644
--- a/erts/emulator/beam/erl_nif.c
+++ b/erts/emulator/beam/erl_nif.c
@@ -1546,7 +1546,8 @@ BIF_RETTYPE load_nif_2(BIF_ALIST_2)
code_ptr[5+0] = (BeamInstr) BeamOp(op_call_nif);
}
else { /* Function traced, patch the original instruction word */
- BpData* bp = (BpData*) code_ptr[1];
+ BpData** bps = (BpData**) code_ptr[1];
+ BpData* bp = (BpData*) bps[bp_sched2ix()];
bp->orig_instr = (BeamInstr) BeamOp(op_call_nif);
}
code_ptr[5+1] = (BeamInstr) entry->funcs[i].fptr;