< prev index next >

src/hotspot/share/runtime/frame.hpp

Print this page

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

437 
438  private:
439   void oops_interpreted_arguments_do(Symbol* signature, bool has_receiver, OopClosure* f) const;
440 
441   // Iteration of oops
442   void oops_do_internal(OopClosure* f, CodeBlobClosure* cf,
443                         DerivedOopClosure* df, DerivedPointerIterationMode derived_mode,
444                         const RegisterMap* map, bool use_interpreter_oop_map_cache) const;
445 
446   void oops_entry_do(OopClosure* f, const RegisterMap* map) const;
447   void oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf,
448                          DerivedOopClosure* df, DerivedPointerIterationMode derived_mode,
449                          const RegisterMap* map) const;
450  public:
451   // Memory management
452   void oops_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map) {
453 #if COMPILER2_OR_JVMCI
454     DerivedPointerIterationMode dpim = DerivedPointerTable::is_active() ?
455                                        DerivedPointerIterationMode::_with_table :
456                                        DerivedPointerIterationMode::_ignore;

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