aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator
diff options
context:
space:
mode:
authorBjörn Gustavsson <bjorn@erlang.org>2012-01-25 16:23:53 +0100
committerBjörn Gustavsson <bjorn@erlang.org>2012-01-25 16:32:44 +0100
commit319bb885bf243b1c0549a9f5cab3d256ab0c1084 (patch)
tree7aee3960dabbc899c1d81050b226b31ee2c33cc1 /erts/emulator
parentd58a69fcf3af87043d6d807f3101bf0b4d9f6a41 (diff)
downloadotp-319bb885bf243b1c0549a9f5cab3d256ab0c1084.tar.gz
otp-319bb885bf243b1c0549a9f5cab3d256ab0c1084.tar.bz2
otp-319bb885bf243b1c0549a9f5cab3d256ab0c1084.zip
Fix crash in trace_info({M,F,A}, Flags) when M:F/A has native code
Diffstat (limited to 'erts/emulator')
-rw-r--r--erts/emulator/beam/beam_bp.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/erts/emulator/beam/beam_bp.c b/erts/emulator/beam/beam_bp.c
index 692fa61fe8..dd13cd179a 100644
--- a/erts/emulator/beam/beam_bp.c
+++ b/erts/emulator/beam/beam_bp.c
@@ -1329,10 +1329,14 @@ static BpData *get_break(Process *p, BeamInstr *pc, BeamInstr break_op) {
}
static BpData *is_break(BeamInstr *pc, BeamInstr break_op) {
- BpData **rs = (BpData **) pc[-4];
+ BpData **rs;
BpData *bd = NULL, *ebd = NULL;
ASSERT(pc[-5] == (BeamInstr) BeamOp(op_i_func_info_IaaI));
+ if (erts_is_native_break(pc)) {
+ return NULL;
+ }
+ rs = (BpData **) pc[-4];
if (! rs) {
return NULL;
}