246 // RedefineClasses() tracing support for obsolete method entry
247 static int rc_trace_method_entry(JavaThread* thread, Method* m);
248
249 // To be used as the entry point for unresolved native methods.
250 static address native_method_throw_unsatisfied_link_error_entry();
251 static address native_method_throw_unsupported_operation_exception_entry();
252
253 // bytecode tracing is only used by the TraceBytecodes
254 static intptr_t trace_bytecode(JavaThread* thread, intptr_t preserve_this_value, intptr_t tos, intptr_t tos2) PRODUCT_RETURN0;
255
256 static oop retrieve_receiver( Symbol* sig, frame caller );
257
258 static void register_finalizer(JavaThread* thread, oopDesc* obj);
259
260 // dtrace notifications
261 static int dtrace_object_alloc(oopDesc* o, int size);
262 static int dtrace_object_alloc_base(Thread* thread, oopDesc* o, int size);
263 static int dtrace_method_entry(JavaThread* thread, Method* m);
264 static int dtrace_method_exit(JavaThread* thread, Method* m);
265
266 // Utility method for retrieving the Java thread id, returns 0 if the
267 // thread is not a well formed Java thread.
268 static jlong get_java_tid(Thread* thread);
269
270
271 // used by native wrappers to reenable yellow if overflow happened in native code
272 static void reguard_yellow_pages();
273
274 /**
275 * Fill in the "X cannot be cast to a Y" message for ClassCastException
276 *
277 * @param thr the current thread
278 * @param name the name of the class of the object attempted to be cast
279 * @return the dynamically allocated exception message (must be freed
280 * by the caller using a resource mark)
281 *
282 * BCP must refer to the current 'checkcast' opcode for the frame
283 * on top of the stack.
284 * The caller (or one of it's callers) must use a ResourceMark
285 * in order to correctly free the result.
|
246 // RedefineClasses() tracing support for obsolete method entry
247 static int rc_trace_method_entry(JavaThread* thread, Method* m);
248
249 // To be used as the entry point for unresolved native methods.
250 static address native_method_throw_unsatisfied_link_error_entry();
251 static address native_method_throw_unsupported_operation_exception_entry();
252
253 // bytecode tracing is only used by the TraceBytecodes
254 static intptr_t trace_bytecode(JavaThread* thread, intptr_t preserve_this_value, intptr_t tos, intptr_t tos2) PRODUCT_RETURN0;
255
256 static oop retrieve_receiver( Symbol* sig, frame caller );
257
258 static void register_finalizer(JavaThread* thread, oopDesc* obj);
259
260 // dtrace notifications
261 static int dtrace_object_alloc(oopDesc* o, int size);
262 static int dtrace_object_alloc_base(Thread* thread, oopDesc* o, int size);
263 static int dtrace_method_entry(JavaThread* thread, Method* m);
264 static int dtrace_method_exit(JavaThread* thread, Method* m);
265
266 // jvmti notification
267 static int jvmti_method_exit(JavaThread* thread, Method* m);
268
269 // Utility method for retrieving the Java thread id, returns 0 if the
270 // thread is not a well formed Java thread.
271 static jlong get_java_tid(Thread* thread);
272
273
274 // used by native wrappers to reenable yellow if overflow happened in native code
275 static void reguard_yellow_pages();
276
277 /**
278 * Fill in the "X cannot be cast to a Y" message for ClassCastException
279 *
280 * @param thr the current thread
281 * @param name the name of the class of the object attempted to be cast
282 * @return the dynamically allocated exception message (must be freed
283 * by the caller using a resource mark)
284 *
285 * BCP must refer to the current 'checkcast' opcode for the frame
286 * on top of the stack.
287 * The caller (or one of it's callers) must use a ResourceMark
288 * in order to correctly free the result.
|