Index: src/debug.cc |
diff --git a/src/debug.cc b/src/debug.cc |
index 0ffdd0043e57c55f6d6e92720f4f0d4f3b2f0a49..6bafe2a1f267ef36fbf950dd8d9ab522536aba66 100644 |
--- a/src/debug.cc |
+++ b/src/debug.cc |
@@ -390,6 +390,20 @@ void BreakLocationIterator::ClearDebugBreak() { |
} |
+bool BreakLocationIterator::IsStepInLocation(Isolate* isolate) { |
+ if (RelocInfo::IsConstructCall(rmode())) { |
+ return true; |
+ } else if (RelocInfo::IsCodeTarget(rmode())) { |
+ HandleScope scope(debug_info_->GetIsolate()); |
+ Address target = rinfo()->target_address(); |
+ Handle<Code> target_code(Code::GetCodeFromTargetAddress(target)); |
+ return target_code->is_call_stub() || target_code->is_keyed_call_stub(); |
+ } else { |
+ return false; |
+ } |
+} |
+ |
+ |
void BreakLocationIterator::PrepareStepIn(Isolate* isolate) { |
HandleScope scope(isolate); |