This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
JVMTI stack tracing patch breaks C++ ABI
- From: Keith Seitz <keiths at redhat dot com>
- To: java at gcc dot gnu dot org
- Date: Wed, 19 Sep 2007 14:08:22 -0700
- Subject: JVMTI stack tracing patch breaks C++ ABI
Hi,
Mark discovered today that the following JDWP patch:
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.
breaks the C++ ABI by adding a new field to Thread.java. So I presume
this should be fixed?
Does adding something to struct natThread to do this sound like a
reasonable plan? Or we could simply hold around a hashtable which maps
java.lang.Thread to their corresponding frame pointers.
Keith