< prev index next >

src/hotspot/share/runtime/frame.hpp

Print this page

427  public:
428   void print_value() const { print_value_on(tty,nullptr); }
429   void print_value_on(outputStream* st, JavaThread *thread) const;
430   void print_on(outputStream* st) const;
431   void interpreter_frame_print_on(outputStream* st) const;
432   void print_on_error(outputStream* st, char* buf, int buflen, bool verbose = false) const;
433   static void print_C_frame(outputStream* st, char* buf, int buflen, address pc);
434 
435   // Add annotated descriptions of memory locations belonging to this frame to values
436   void describe(FrameValues& values, int frame_no, const RegisterMap* reg_map=nullptr);
437 
438   // Conversion from a VMReg to physical stack location
439   template <typename RegisterMapT>
440   address oopmapreg_to_location(VMReg reg, const RegisterMapT* reg_map) const;
441   template <typename RegisterMapT>
442   oop* oopmapreg_to_oop_location(VMReg reg, const RegisterMapT* reg_map) const;
443 
444   // Oops-do's
445   void oops_compiled_arguments_do(Symbol* signature, bool has_receiver, bool has_appendix, const RegisterMap* reg_map, OopClosure* f) const;
446   void oops_interpreted_do(OopClosure* f, const RegisterMap* map, bool query_oop_map_cache = true) const;

447 
448  private:
449   void oops_interpreted_arguments_do(Symbol* signature, bool has_receiver, OopClosure* f) const;
450 
451   // Iteration of oops
452   void oops_do_internal(OopClosure* f, CodeBlobClosure* cf,
453                         DerivedOopClosure* df, DerivedPointerIterationMode derived_mode,
454                         const RegisterMap* map, bool use_interpreter_oop_map_cache) const;
455 
456   void oops_entry_do(OopClosure* f, const RegisterMap* map) const;
457   void oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf,
458                          DerivedOopClosure* df, DerivedPointerIterationMode derived_mode,
459                          const RegisterMap* map) const;
460  public:
461   // Memory management
462   void oops_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map) {
463 #if COMPILER2_OR_JVMCI
464     DerivedPointerIterationMode dpim = DerivedPointerTable::is_active() ?
465                                        DerivedPointerIterationMode::_with_table :
466                                        DerivedPointerIterationMode::_ignore;

427  public:
428   void print_value() const { print_value_on(tty,nullptr); }
429   void print_value_on(outputStream* st, JavaThread *thread) const;
430   void print_on(outputStream* st) const;
431   void interpreter_frame_print_on(outputStream* st) const;
432   void print_on_error(outputStream* st, char* buf, int buflen, bool verbose = false) const;
433   static void print_C_frame(outputStream* st, char* buf, int buflen, address pc);
434 
435   // Add annotated descriptions of memory locations belonging to this frame to values
436   void describe(FrameValues& values, int frame_no, const RegisterMap* reg_map=nullptr);
437 
438   // Conversion from a VMReg to physical stack location
439   template <typename RegisterMapT>
440   address oopmapreg_to_location(VMReg reg, const RegisterMapT* reg_map) const;
441   template <typename RegisterMapT>
442   oop* oopmapreg_to_oop_location(VMReg reg, const RegisterMapT* reg_map) const;
443 
444   // Oops-do's
445   void oops_compiled_arguments_do(Symbol* signature, bool has_receiver, bool has_appendix, const RegisterMap* reg_map, OopClosure* f) const;
446   void oops_interpreted_do(OopClosure* f, const RegisterMap* map, bool query_oop_map_cache = true) const;
447   void buffered_values_interpreted_do(BufferedValueClosure* f);
448 
449  private:
450   void oops_interpreted_arguments_do(Symbol* signature, bool has_receiver, OopClosure* f) const;
451 
452   // Iteration of oops
453   void oops_do_internal(OopClosure* f, CodeBlobClosure* cf,
454                         DerivedOopClosure* df, DerivedPointerIterationMode derived_mode,
455                         const RegisterMap* map, bool use_interpreter_oop_map_cache) const;
456 
457   void oops_entry_do(OopClosure* f, const RegisterMap* map) const;
458   void oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf,
459                          DerivedOopClosure* df, DerivedPointerIterationMode derived_mode,
460                          const RegisterMap* map) const;
461  public:
462   // Memory management
463   void oops_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map) {
464 #if COMPILER2_OR_JVMCI
465     DerivedPointerIterationMode dpim = DerivedPointerTable::is_active() ?
466                                        DerivedPointerIterationMode::_with_table :
467                                        DerivedPointerIterationMode::_ignore;
< prev index next >