diff options
author | Erlang/OTP <[email protected]> | 2010-06-04 14:01:56 +0000 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2010-06-04 14:01:56 +0000 |
commit | 5e354ca66996ee03d615dc36c284e94ccf176e89 (patch) | |
tree | cce028987420702d213a751d03f1cd3683c4bed5 /erts/emulator/beam/erl_nif.c | |
parent | fa66eb731b85726970cc4c581d32ebdc2ebb965e (diff) | |
parent | 63751e0554dfb35a63d572aaca2f1fc37e1c12fe (diff) | |
download | otp-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.c | 3 |
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; |