OSDN Git Service

JDWP: fix breakpoint for method in the image
authorSebastien Hertz <shertz@google.com>
Wed, 26 Nov 2014 21:11:27 +0000 (22:11 +0100)
committerSebastien Hertz <shertz@google.com>
Sat, 17 Jan 2015 14:28:49 +0000 (15:28 +0100)
commit7f418db815f0eaef5b2f43e1f06fb8773a415494
tree12a091013ad3d3a48fbf5a7af5b1499392b3c760
parentf2df4941be3c48daee65f2ca1852994240872e4d
JDWP: fix breakpoint for method in the image

When we set a breakpoint in a compiled method, we deoptimize it by
changing its entrypoint so it is executed with the interpreter.
However, methods in the image can be called with their direct code
pointer, ignoring the updated entrypoint. In that case, the method
is not executed with the interpreter and we miss the breakpoint.

This CL avoids that situation by forcing a full deoptimization so
everything runs with the interpreter. However, if the image has been
compiled in PIC mode, we keep using selective deoptimization because
direct code pointer is not used in this mode.

Bug: 17965285

(cherry picked from commit 6963e44331258b131bcc0599b868ba15902d6d22)

Change-Id: I9bf738f89b9eb6d18733503216b376b8a1d181f5
runtime/class_linker.cc
runtime/class_linker.h
runtime/class_linker_test.cc
runtime/debugger.cc
runtime/mirror/class.h