< prev index next >

hotspot/src/share/vm/classfile/javaClasses.hpp

Print this page




1347 
1348 class Backtrace: AllStatic {
1349  public:
1350   // Helper backtrace functions to store bci|version together.
1351   static int merge_bci_and_version(int bci, int version);
1352   static int merge_mid_and_cpref(int mid, int cpref);
1353   static int bci_at(unsigned int merged);
1354   static int version_at(unsigned int merged);
1355   static int mid_at(unsigned int merged);
1356   static int cpref_at(unsigned int merged);
1357   static int get_line_number(const methodHandle& method, int bci);
1358   static Symbol* get_source_file_name(InstanceKlass* holder, int version);
1359 
1360   // Debugging
1361   friend class JavaClasses;
1362 };
1363 
1364 // Interface to java.lang.StackFrameInfo objects
1365 
1366 #define STACKFRAMEINFO_INJECTED_FIELDS(macro)                      \
1367   macro(java_lang_StackFrameInfo, mid,     short_signature, false) \
1368   macro(java_lang_StackFrameInfo, version, short_signature, false) \
1369   macro(java_lang_StackFrameInfo, cpref,   short_signature, false)
1370 
1371 class java_lang_StackFrameInfo: AllStatic {
1372 private:
1373   static int _declaringClass_offset;
1374   static int _memberName_offset;
1375   static int _bci_offset;
1376   static int _methodName_offset;
1377   static int _fileName_offset;
1378   static int _lineNumber_offset;
1379 
1380   static int _mid_offset;
1381   static int _version_offset;
1382   static int _cpref_offset;
1383 
1384   static Method* get_method(Handle stackFrame, InstanceKlass* holder, TRAPS);
1385   static Symbol* get_file_name(Handle stackFrame, InstanceKlass* holder);
1386 
1387 public:
1388   // Setters
1389   static void set_declaringClass(oop info, oop value);
1390   static void set_method_and_bci(Handle stackFrame, const methodHandle& method, int bci);
1391   static void set_bci(oop info, int value);
1392 
1393   // set method info in an instance of StackFrameInfo
1394   static void fill_methodInfo(Handle info, TRAPS);
1395   static void set_methodName(oop info, oop value);
1396   static void set_fileName(oop info, oop value);
1397   static void set_lineNumber(oop info, int value);
1398 
1399   // these injected fields are only used if -XX:-MemberNameInStackFrame set
1400   static void set_mid(oop info, short value);
1401   static void set_version(oop info, short value);
1402   static void set_cpref(oop info, short value);
1403 
1404   static void compute_offsets();


1405 
1406   // Debugging
1407   friend class JavaClasses;
1408 };
1409 
1410 class java_lang_LiveStackFrameInfo: AllStatic {
1411  private:
1412   static int _monitors_offset;
1413   static int _locals_offset;
1414   static int _operands_offset;
1415 
1416  public:
1417   static void set_monitors(oop info, oop value);
1418   static void set_locals(oop info, oop value);
1419   static void set_operands(oop info, oop value);
1420 
1421   static void compute_offsets();
1422 
1423   // Debugging
1424   friend class JavaClasses;




1347 
1348 class Backtrace: AllStatic {
1349  public:
1350   // Helper backtrace functions to store bci|version together.
1351   static int merge_bci_and_version(int bci, int version);
1352   static int merge_mid_and_cpref(int mid, int cpref);
1353   static int bci_at(unsigned int merged);
1354   static int version_at(unsigned int merged);
1355   static int mid_at(unsigned int merged);
1356   static int cpref_at(unsigned int merged);
1357   static int get_line_number(const methodHandle& method, int bci);
1358   static Symbol* get_source_file_name(InstanceKlass* holder, int version);
1359 
1360   // Debugging
1361   friend class JavaClasses;
1362 };
1363 
1364 // Interface to java.lang.StackFrameInfo objects
1365 
1366 #define STACKFRAMEINFO_INJECTED_FIELDS(macro)                      \
1367   macro(java_lang_StackFrameInfo, version, short_signature, false)


1368 
1369 class java_lang_StackFrameInfo: AllStatic {
1370 private:
1371   static int _declaringClass_offset;
1372   static int _memberName_offset;
1373   static int _bci_offset;





1374   static int _version_offset;

1375 
1376   static Method* get_method(Handle stackFrame, InstanceKlass* holder, TRAPS);

1377 
1378 public:
1379   // Setters
1380   static void set_declaringClass(oop info, oop value);
1381   static void set_method_and_bci(Handle stackFrame, const methodHandle& method, int bci);
1382   static void set_bci(oop info, int value);
1383 








1384   static void set_version(oop info, short value);

1385 
1386   static void compute_offsets();
1387 
1388   static void fill_methodInfo(Handle stackFrame, Handle stack_trace_element, TRAPS);
1389 
1390   // Debugging
1391   friend class JavaClasses;
1392 };
1393 
1394 class java_lang_LiveStackFrameInfo: AllStatic {
1395  private:
1396   static int _monitors_offset;
1397   static int _locals_offset;
1398   static int _operands_offset;
1399 
1400  public:
1401   static void set_monitors(oop info, oop value);
1402   static void set_locals(oop info, oop value);
1403   static void set_operands(oop info, oop value);
1404 
1405   static void compute_offsets();
1406 
1407   // Debugging
1408   friend class JavaClasses;


< prev index next >