* interpret-run.cc (NEXT_INSN)[DEBUG]: Advance PC before
executing the instruction.
* include/java-interp.h (_Jv_InterpFrame::get_pc): Subtract
one insn from the frame's PC. _Jv_InterpMethod::run et al
will advance the PC before executing the instruction.
From-SVN: r124313
2007-04-23 Kyle Galloway <kgallowa@redhat.com>
* include/java-interp.h (_Jv_InterpFrame): Add pointer to the
interpreter PC.
(<init>): Add a pointer to the interpreter PC as a parameter with
default value NULL.
(get_pc): New method.
* interpret-run.cc: If debugging, pass a pointer to the PC when
creating the stack frame.
* jvmti.cc (_Jv_JVMTI_GetStackTrace): Call _Jv_InterpFrame::get_pc
to get the PC.
From-SVN: r124076
2007-02-15 Kyle Galloway <kgallowa@redhat.com>
* defineclass.cc (_Jv_ClassReader::read_one_code_attribute):
Added LocalVariableTable attribute handling.
(_Jv_ClassReader::pool_Utf8_to_char_arr): New method.
* jvmti.cc (_Jv_JVMTI_GetLocalVariableTable): New method.
* include/java-interp.h: Added local_var_table and
local_var_table_len fields to _Jv_InterpMethod.
(_Jv_InterpMethod::get_local_var_table): New method.
* testsuite/libjava.jvmti/interp/getlocalvartable.java: New
test.
* testsuite/libjava.jvmti/interp/getlocalvartable.jar: New test.
* testsuite/libjava.jvmti/interp/getlocalvartable.out: Output
for new test.
* testsuite/libjava.jvmti/interp/getlocalvartable.h: New test.
* testsuite/libjava.jvmti/interp/natgetlocalvartable.cc: New
test.
From-SVN: r121999
2007-02-06 Kyle Galloway <kgallowa@redhat.com>
* include/java-interp.h (_Jv_InterpFrame): obj_ptr field added
to hold "this" pointer for frame.
(_Jv_InterpFrame::get_this_ptr): New method.
* interpret-run.cc: Copy the "this" pointer into obj_ptr.
From-SVN: r121717
* 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
2007-01-29 Kyle Galloway <kgallowa@redhat.com>
* include/java-interp.h: Added _Jv_Frame class and its two
subclasses _Jv_InterpFrame and _Jv_NativeFrame. Also moved
_Jv_FrameType from java-stack.h.
* include/java-stack.h: Removed _Jv_FrameType.
* java/lang/Thread.java: Added frame member to hold new
composite frame stack.
* java/lang/Thread.h: Regenerated.
* java/lang/Thread.class: Rebuilt.
* jni.cc (_Jv_JNIMethod::call): Push a frame onto the stack when
calling a JNI method.
* jvmti.cc (_Jv_JVMTI_GetStackTrace): New Method.
(_Jv_JVMTI_GetFrameCount): New method.
* stacktrace.cc (UnwindTraceFn): Modified to use new _Jv_Frame
classes.
* testsuite/libjava.jvmti/interp/getstacktrace.jar: New test.
* testsuite/libjava.jvmti/interp/natgetstacktrace.cc: New test.
* testsuite/libjava.jvmti/interp/getstacktrace.h: New test.
* testsuite/libjava.jvmti/interp/getstacktrace.jar: New test.
* testsuite/libjava.jvmti/interp/getstacktrace.out: Output file
for test.
From-SVN: r121314
* configure, Makefile.in: Rebuilt.
* Makefile.am (bin_SCRIPTS): Never install scripts/jar.
* configure.ac (BASH_JAR): Removed conditional.
(JAR): Prefer the jar found by AC_CHECK_PROGS.
From-SVN: r121301
* include/jvmti_md.h (_CLASSPATH_VM_JVMTI_TYPES_DEFINED):
Define.
[__GCJ_JNI_IMPL__]: Define our own JVMTI types when building
gcj. All jvmti object types now are defined to be their
corresponding java classes.
* jvmti.cc (_Jv_JVMTI_SuspendThread): Remove casting from
jthread to Thread*.
(_Jv_JVMTI_ResumeThread): Likewise.
(_Jv_JVMTI_InterruptThread): Likewise.
(_Jv_JVMTI_SetEventNotificationMode): Likewise.
* gnu/classpath/jdwp/natVMVirtualMachine.cc
(jdwpClassPrepareCB): Likewise.
(jdwpThreadEndCB): Likewise.
(jdwpThreadStartCB): Likewise.
(jdwpVMInitCB): Likewise.
From-SVN: r121296
PR java/29812:
* testsuite/libjava.jni/pr29812.java: New file.
* testsuite/libjava.jni/pr29812_injar.java: New file.
* testsuite/libjava.jni/pr29812_injar.jar: New file.
* testsuite/libjava.jni/pr29812.out: New file.
* testsuite/libjava.jni/pr29812_injar.c: New file.
* testsuite/libjava.jni/pr29812_injar.h: New file.
* testsuite/libjava.jni/pr29812.jar: New file.
* testsuite/libjava.jni/pr29812.c: New file.
* testsuite/libjava.jni/pr29812.h: New file.
* testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation):
New proc.
(gcj_jni_invocation_test_one): Use it.
(gcj_jni_pr29812): New proc.
(gcj_jni_run): Use it.
* java/lang/natRuntime.cc (_load): Push a new system frame before
calling JNI_OnLoad.
* include/jvm.h (_Jv_JNI_PopSystemFrame): Declare.
(_Jv_GetJNIEnvNewFrameWithLoader): Likewise.
* jni.cc (struct _Jv_JNI_LocalFrame) <marker>: Now unsigned char.
<allocated_p>: Now bool.
<loader>: New field.
(_Jv_JNI_EnsureLocalCapacity): Updated.
(_Jv_JNI_NewLocalRef): Likewise.
(_Jv_JNI_NewLocalRef): Likewise.
(_Jv_JNI_PopLocalFrame): Likewise.
(_Jv_JNI_FindClass): Likewise.
(_Jv_GetJNIEnvNewFrame): Likewise.
(_Jv_JNI_AttachCurrentThread): Likewise.
(_Jv_GetJNIEnvNewFrameWithLoader): New function.
(_Jv_GetJNIEnvNewFrame): Use it.
* include/jni_md.h (_CLASSPATH_JNIENV_CONTENTS): Removed 'klass'.
From-SVN: r121064
2007-01-17 Jack Howarth <howarth@bromo.med.uc.edu>
boehm-gc/
* aclocal.m4: Regenerate to use multi.m4.
* configure: Regenerate.
* Makefile.in: Regenerate.
zlib/
* Makefile.am: Add ACLOCAL_AMFLAGS to use multi.m4.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* Makefile.in: Regenerate.
libffi/
* Makefile.am: Add ACLOCAL_AMFLAGS to use multi.m4.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* Makefile.in: Regenerate.
libjava/
* configure.ac: Use multi.m4 from aclocal rather than custom
code. Use multi_basedir instead libgcj_basedir. Test for
/proc/self/exe when not cross-compiling.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* Makefile.in: Regenerate.
libjava/classpath/
* configure.ac: Use multi.m4 from aclocal rather than
custom code. Use multi_basedir instead libgcj_basedir.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* Makefile.in: Regenerate.
libjava/libltdl/
* Makefile.am: Add ACLOCAL_AMFLAGS to use multi.m4.
* configure.ac: Use multi.m4 from aclocal rather than
custom code.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* Makefile.in: Regenerate.
From-SVN: r120870
2006-11-20 David Daney <ddaney@avtrex.com>
* include/mips-signal.h (sys/syscall.h): Do not include.
(sig_ucontext_t): Removed.
(MAKE_THROW_FRAME): Changed to be a nop.
(_INIT_SIG_HANDLER): New macro.
(INIT_SEGV): Rewrote to use _INIT_SIG_HANDLER.
(INIT_FPE): Same.
2006-11-20 David Daney <ddaney@avtrex.com>
* config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
PC to point to following instruction.
From-SVN: r119024
* include/java-stack.h (ncodeMap): Declare.
(_Jv_StackTrace): Make _Jv_GetMethodDeclaringClass friend.
* java/lang/Class.h (_Jv_GetMethodDeclaringClass): Declare.
* java/lang/natClass.cc (_Jv_GetMethodDeclaringClass): New
function.
* stacktrace.cc (ncodeMap): Redefine from file global to global
for class _Jv_StackTrace.
(_Jv_StackTrace::UpdateNCodeMap): Add interpreted classes, too,
so that _Jv_GetMethodDeclaringClass can find them all.
(_Jv_StackTrace::ClassForFrame): Exclude interpreted classes.
* jvmti.cc (_Jv_JVMTI_GetMethodDeclaringClass): New function.
(_Jv_JVMTI_Interface): Define GetMethodDeclaringClass function.
From-SVN: r118100
* include/java-interp.h (prepared): Change type to pc_t.
(insn_index): Define for both DIRECT_THREADED and bytecode interpreters.
* interpret.cc [!DIRECT_THREADED] (POKEI): Fix typo.
(insn_index): Implement for bytecode interpreter.
* interpret-run.cc [!DIRECT_THREADED] (AVAL1U): Add _Jv_Linker class
qualifier to resolve_pool_entry.
[!DIRECT_THREADED] (AVAL2U): Likewise.
[!DIRECT_THREADED] bytecode() cannot be called without an object.
Changed all typos.
[!DIRECT_THREADED] Likewise for defining_class.
From-SVN: r117333
* jvmti.cc (_Jv_JVMTI_DisposeEnvironment): Check for enabled
events.
(check_enabled_event): New function.
(check_enabled_events): New function.
(post_event): New function.
(_Jv_JVMTI_SetEventNotificationMode): New function.
(_Jv_JVMTI_SetEventCallbacks): New function.
(_Jv_JVMTI_Interface): Define SetEventNotificationMode and
SetEventCallbacks members.
* include/jvmti-int.h: New file.
* include/jvmti_md.h (EVENT_SLOTS) [__GCJ_JNI_IMP__]: Define.
(_CLASSPATH_JVMTIENV_CONTENTS) [__GCJ_JNI_IMPL__]: Define.
* testsuite/libjava.jvmti/events.java: New file.
* testsuite/libjava.jvmti/events.out: New file.
* testsuite/libjava.jvmti/natevents.cc: New file.
From-SVN: r117133
* include/jvm.h (_Jv_JVMTI_Init): Declare.
* jvmti.cc (_Jv_JVMTI_Init): New function.
* prims.cc (_Jv_CreateJavaVM): Initialize JVMTI.
* jvmti.cc (ILLEGAL_ARGUMENT): New macro.
(_Jv_JVMTI_Allocate): Use ILLEGAL_ARUMENT.
* jvmti.cc (_jvmtiEnvironments): New linked list of
JVMTI environments.
(FOREACH_ENVIRONMENT): New macro.
(_envListLock): New object to act as synchronization lock
for _jvmtiEnvironments.
(_Jv_JVMTI_DisposeEnvironment): Check for NULL environment.
Remove the environment from the list of known environments.
(_Jv_GetJVMTIEnv): Add the new environment to the list
of known environments.
From-SVN: r116635
2006-08-15 Kyle Galloway <kgallowa@redhat.com>
* include/java-interp.h (_Jv_InterpMethod::run_debug): New method.
* interpret.cc: Added placeholder for debug variable type info to STORE*
macros.
(_Jv_InterpMethod::run_debug): New method.
(_Jv_InterpMethod::run_sync_object_debug): New method.
(_Jv_InterpMethod::run_sync_class_debug): New method.
(_Jv_InterpMethod::run_normal_debug): New method.
(_Jv_InterpMethod::run_class_debug): New method.
(_Jv_InterpMethod::ncode ()): Changed to select either debug or normal
versions of these functions.
* interpret-run.cc: New file, holds contents of old
_Jv_InterpMethod::run method.
* stacktrace.cc (_Jv_StackTrace::UnwindTraceFn): Changed to select
appropriate function for debug or normal mode.
From-SVN: r116167
2006-08-10 Gary Benson <gbenson@redhat.com>
* include/java-stack.h (GetAccessControlStack): Change return
type.
* stacktrace.cc (accesscontrol_trace_fn): Record the number of
Java frames encountered.
(GetAccessControlStack): Return a flag indicating whether a call to
doPrivileged was encountered rather than an array of method names.
* java/security/natVMAccessController.cc (getStack): Change return
type.
* java/security/VMAccessController.java (getStack): Likewise.
(getContext): Change to reflect the above.
From-SVN: r116058