< prev index next >
hotspot/src/share/vm/classfile/javaClasses.hpp
Print this page
*** 1346,1360 ****
--- 1346,1442 ----
static void set_lineNumber(oop element, int value);
// Create an instance of StackTraceElement
static oop create(Handle mirror, int method, int version, int bci, int cpref, TRAPS);
static oop create(methodHandle method, int bci, TRAPS);
+ static void init(Handle element, Handle mirror, int method, int version, int bci, int cpref, TRAPS);
+
+
+ // Debugging
+ friend class JavaClasses;
+ };
+
+
+ class BackTrace: AllStatic {
+ public:
+ // Helper backtrace functions to store bci|version together.
+ static int merge_bci_and_version(int bci, int version);
+
+ static int merge_mid_and_cpref(int mid, int cpref);
+
+ static int bci_at(unsigned int merged);
+
+ static int version_at(unsigned int merged);
+
+ static int mid_at(unsigned int merged);
+
+ static int cpref_at(unsigned int merged);
+
+ static int get_line_number(methodHandle method, int bci);
+
+ static Symbol* get_source_file_name(InstanceKlass* holder, int version);
+
+ // Debugging
+ friend class JavaClasses;
+ };
+
+ // Interface to java.lang.StackFrameInfo objects
+
+ class java_lang_StackFrameInfo: AllStatic {
+ private:
+ static int declaringClass_offset;
+ static int memberName_offset;
+ static int mid_offset;
+ static int bci_offset;
+
+ static int methodName_offset;
+ static int fileName_offset;
+ static int lineNumber_offset;
+
+ static Method* get_method(Handle stackFrame, InstanceKlass* holder, TRAPS);
+ static Symbol* get_file_name(Handle stackFrame, InstanceKlass* holder);
+
+ public:
+ // Setters
+ static void set_declaringClass(oop info, oop value);
+ static void set_methodName(oop info, oop value);
+ static void set_fileName(oop info, oop value);
+ static void set_lineNumber(oop info, int value);
+
+ static void set_mid(oop info, int value);
+ static void set_bci(oop info, int value);
+
+ static void compute_offsets();
+
+ static int bci(oop info);
+ static oop member_name(oop info);
+
+ // set method info in an instance of StackFrameInfo
+ static void fill_methodInfo(Handle info, TRAPS);
// Debugging
friend class JavaClasses;
};
+ class java_lang_LiveStackFrameInfo: AllStatic {
+ private:
+
+ static int monitors_offset;
+ static int locals_offset;
+ static int operands_offset;
+
+ public:
+
+ static void set_monitors(oop info, oop value);
+ static void set_locals(oop info, oop value);
+ static void set_operands(oop info, oop value);
+
+ static void compute_offsets();
+
+ // Debugging
+ friend class JavaClasses;
+ };
// Interface to java.lang.AssertionStatusDirectives objects
class java_lang_AssertionStatusDirectives: AllStatic {
private:
< prev index next >