1362 }; |
1362 }; |
1363 |
1363 |
1364 // Interface to java.lang.StackFrameInfo objects |
1364 // Interface to java.lang.StackFrameInfo objects |
1365 |
1365 |
1366 #define STACKFRAMEINFO_INJECTED_FIELDS(macro) \ |
1366 #define STACKFRAMEINFO_INJECTED_FIELDS(macro) \ |
1367 macro(java_lang_StackFrameInfo, mid, short_signature, false) \ |
1367 macro(java_lang_StackFrameInfo, version, short_signature, false) |
1368 macro(java_lang_StackFrameInfo, version, short_signature, false) \ |
|
1369 macro(java_lang_StackFrameInfo, cpref, short_signature, false) |
|
1370 |
1368 |
1371 class java_lang_StackFrameInfo: AllStatic { |
1369 class java_lang_StackFrameInfo: AllStatic { |
1372 private: |
1370 private: |
1373 static int _declaringClass_offset; |
1371 static int _declaringClass_offset; |
1374 static int _memberName_offset; |
1372 static int _memberName_offset; |
1375 static int _bci_offset; |
1373 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; |
1374 static int _version_offset; |
1382 static int _cpref_offset; |
|
1383 |
1375 |
1384 static Method* get_method(Handle stackFrame, InstanceKlass* holder, TRAPS); |
1376 static Method* get_method(Handle stackFrame, InstanceKlass* holder, TRAPS); |
1385 static Symbol* get_file_name(Handle stackFrame, InstanceKlass* holder); |
|
1386 |
1377 |
1387 public: |
1378 public: |
1388 // Setters |
1379 // Setters |
1389 static void set_declaringClass(oop info, oop value); |
1380 static void set_declaringClass(oop info, oop value); |
1390 static void set_method_and_bci(Handle stackFrame, const methodHandle& method, int bci); |
1381 static void set_method_and_bci(Handle stackFrame, const methodHandle& method, int bci); |
1391 static void set_bci(oop info, int value); |
1382 static void set_bci(oop info, int value); |
1392 |
1383 |
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); |
1384 static void set_version(oop info, short value); |
1402 static void set_cpref(oop info, short value); |
1385 |
1403 |
1386 static void compute_offsets(); |
1404 static void compute_offsets(); |
1387 |
|
1388 static void to_stack_trace_element(Handle stackFrame, Handle stack_trace_element, TRAPS); |
1405 |
1389 |
1406 // Debugging |
1390 // Debugging |
1407 friend class JavaClasses; |
1391 friend class JavaClasses; |
1408 }; |
1392 }; |
1409 |
1393 |