diff options
author | Mathieu Chartier <mathieuc@google.com> | 2015-03-26 09:41:50 -0700 |
---|---|---|
committer | Mathieu Chartier <mathieuc@google.com> | 2015-03-26 13:34:27 -0700 |
commit | d8565456d29f4ad05f11cf84d2d2dac488508e06 (patch) | |
tree | 8c5eca4c2604e0edc1606ea151d78538098dc040 /runtime/debugger.cc | |
parent | 81adb4f8fd261be11d399d210029189e94888a9e (diff) | |
download | art-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.cc | 5 |
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) |