jvmti-int.h (JVMTI): Declare member "enabled".
* include/jvmti-int.h (JVMTI): Declare member "enabled".
* jvmti.cc (JVMTI): Add member "enabled".
(_Jv_GetJVMTIEnv): Mark JVMTI enabled.
* interpret.cc (_Jv_InterpMethod::ncode): Use JVMTI::enabled
instead of gnu::classpath::jdwp::Jdwp::isDebugging.
(_Jv_CompileMethod): If JVMTI is enabled, use run_debug
instead of run to compile the method.
* interpret-run.cc [DEBUG] (NEXT_INSN): Add JVMTI single step
notification.
From-SVN: r121442
This commit is contained in:
@@ -248,7 +248,27 @@ details. */
|
||||
|
||||
#ifdef DIRECT_THREADED
|
||||
|
||||
#ifdef DEBUG
|
||||
#undef NEXT_INSN
|
||||
#define NEXT_INSN \
|
||||
do \
|
||||
{ \
|
||||
if (JVMTI_REQUESTED_EVENT (SingleStep)) \
|
||||
{ \
|
||||
JNIEnv *env = _Jv_GetCurrentJNIEnv (); \
|
||||
jmethodID method = meth->self; \
|
||||
jlocation loc = meth->insn_index (pc); \
|
||||
_Jv_JVMTI_PostEvent (JVMTI_EVENT_SINGLE_STEP, thread, \
|
||||
env, method, loc); \
|
||||
} \
|
||||
goto *((pc++)->insn); \
|
||||
} \
|
||||
while (0)
|
||||
#else
|
||||
#undef NEXT_INSN
|
||||
#define NEXT_INSN goto *((pc++)->insn)
|
||||
#endif
|
||||
|
||||
#define INTVAL() ((pc++)->int_val)
|
||||
#define AVAL() ((pc++)->datum)
|
||||
|
||||
@@ -281,7 +301,22 @@ details. */
|
||||
|
||||
#else
|
||||
|
||||
#ifdef DEBUG
|
||||
#define NEXT_INSN \
|
||||
do \
|
||||
{ \
|
||||
if (JVMTI_REQUESTED_EVENT (SingleStep)) \
|
||||
{ \
|
||||
JNIEnv *env = _Jv_GetCurrentJNIEnv (); \
|
||||
jmethodID method = meth->self; \
|
||||
jlocation loc = meth->insn_index (pc); \
|
||||
_Jv_JVMTI_PostEvent (JVMTI_EVENT_SINGLE_STEP, thread, \
|
||||
env, method, loc); \
|
||||
} \
|
||||
goto *(insn_target[*pc++])
|
||||
#else
|
||||
#define NEXT_INSN goto *(insn_target[*pc++])
|
||||
#endif
|
||||
|
||||
#define GET1S() get1s (pc++)
|
||||
#define GET2S() (pc += 2, get2s (pc- 2))
|
||||
|
||||
Reference in New Issue
Block a user