554 static void print_stack_usage(Handle stream);
555
556 static void compute_offsets();
557 static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
558
559 // Allocate space for backtrace (created but stack trace not filled in)
560 static void allocate_backtrace(Handle throwable, TRAPS);
561 // Fill in current stack trace for throwable with preallocated backtrace (no GC)
562 static void fill_in_stack_trace_of_preallocated_backtrace(Handle throwable);
563 // Fill in current stack trace, can cause GC
564 static void fill_in_stack_trace(Handle throwable, const methodHandle& method, TRAPS);
565 static void fill_in_stack_trace(Handle throwable, const methodHandle& method = methodHandle());
566 // Programmatic access to stack trace
567 static void get_stack_trace_elements(Handle throwable, objArrayHandle stack_trace, TRAPS);
568 // Printing
569 static void print(oop throwable, outputStream* st);
570 static void print_stack_trace(Handle throwable, outputStream* st);
571 static void java_printStackTrace(Handle throwable, TRAPS);
572 // Debugging
573 friend class JavaClasses;
574 };
575
576
577 // Interface to java.lang.reflect.AccessibleObject objects
578
579 class java_lang_reflect_AccessibleObject: AllStatic {
580 private:
581 // Note that to reduce dependencies on the JDK we compute these
582 // offsets at run-time.
583 static int override_offset;
584
585 static void compute_offsets();
586
587 public:
588 static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
589
590 // Accessors
591 static jboolean override(oop reflect);
592 static void set_override(oop reflect, jboolean value);
593
|
554 static void print_stack_usage(Handle stream);
555
556 static void compute_offsets();
557 static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
558
559 // Allocate space for backtrace (created but stack trace not filled in)
560 static void allocate_backtrace(Handle throwable, TRAPS);
561 // Fill in current stack trace for throwable with preallocated backtrace (no GC)
562 static void fill_in_stack_trace_of_preallocated_backtrace(Handle throwable);
563 // Fill in current stack trace, can cause GC
564 static void fill_in_stack_trace(Handle throwable, const methodHandle& method, TRAPS);
565 static void fill_in_stack_trace(Handle throwable, const methodHandle& method = methodHandle());
566 // Programmatic access to stack trace
567 static void get_stack_trace_elements(Handle throwable, objArrayHandle stack_trace, TRAPS);
568 // Printing
569 static void print(oop throwable, outputStream* st);
570 static void print_stack_trace(Handle throwable, outputStream* st);
571 static void java_printStackTrace(Handle throwable, TRAPS);
572 // Debugging
573 friend class JavaClasses;
574 // Gets the method and bci of the top frame (TOS). Returns false if this failed.
575 static bool get_method_and_bci(oop throwable, Method** method, int* bci);
576 };
577
578
579 // Interface to java.lang.reflect.AccessibleObject objects
580
581 class java_lang_reflect_AccessibleObject: AllStatic {
582 private:
583 // Note that to reduce dependencies on the JDK we compute these
584 // offsets at run-time.
585 static int override_offset;
586
587 static void compute_offsets();
588
589 public:
590 static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
591
592 // Accessors
593 static jboolean override(oop reflect);
594 static void set_override(oop reflect, jboolean value);
595
|