summaryrefslogtreecommitdiffstats
path: root/runtime/debugger.cc
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2015-03-26 09:41:50 -0700
committerMathieu Chartier <mathieuc@google.com>2015-03-26 13:34:27 -0700
commitd8565456d29f4ad05f11cf84d2d2dac488508e06 (patch)
tree8c5eca4c2604e0edc1606ea151d78538098dc040 /runtime/debugger.cc
parent81adb4f8fd261be11d399d210029189e94888a9e (diff)
downloadart-d8565456d29f4ad05f11cf84d2d2dac488508e06.zip
art-d8565456d29f4ad05f11cf84d2d2dac488508e06.tar.gz
art-d8565456d29f4ad05f11cf84d2d2dac488508e06.tar.bz2
Fix ClassLinker::MayBeCalledWithDirectCodePointer for JIT
Currently, we don't know if another method has a direct code pointer or not. This should fix the case where breakpoints occasionally don't work with JIT. The JIT now also checks that a method doesn't have any breakpoints before starting to compile it. Bug: 17950037 Change-Id: I17cfe874fe4825beba23903a5053d5cb27e106cb
Diffstat (limited to 'runtime/debugger.cc')
-rw-r--r--runtime/debugger.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/runtime/debugger.cc b/runtime/debugger.cc
index 7144577..a1ae236 100644
--- a/runtime/debugger.cc
+++ b/runtime/debugger.cc
@@ -3153,6 +3153,11 @@ static const Breakpoint* FindFirstBreakpointForMethod(mirror::ArtMethod* m)
return nullptr;
}
+bool Dbg::MethodHasAnyBreakpoints(mirror::ArtMethod* method) {
+ ReaderMutexLock mu(Thread::Current(), *Locks::breakpoint_lock_);
+ return FindFirstBreakpointForMethod(method) != nullptr;
+}
+
// Sanity checks all existing breakpoints on the same method.
static void SanityCheckExistingBreakpoints(mirror::ArtMethod* m,
DeoptimizationRequest::Kind deoptimization_kind)