< prev index next >

src/hotspot/share/runtime/frame.hpp

Print this page

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

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

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