394 // For debugging
395 private:
396 const char* print_name() const;
397
398 void describe_pd(FrameValues& values, int frame_no);
399
400 public:
401 void print_value() const { print_value_on(tty,NULL); }
402 void print_value_on(outputStream* st, JavaThread *thread) const;
403 void print_on(outputStream* st) const;
404 void interpreter_frame_print_on(outputStream* st) const;
405 void print_on_error(outputStream* st, char* buf, int buflen, bool verbose = false) const;
406
407 // Add annotated descriptions of memory locations belonging to this frame to values
408 void describe(FrameValues& values, int frame_no);
409
410 // Conversion from an VMReg to physical stack location
411 oop* oopmapreg_to_location(VMReg reg, const RegisterMap* regmap) const;
412
413 // Oops-do's
414 void oops_compiled_arguments_do(Symbol* signature, bool has_receiver, const RegisterMap* reg_map, OopClosure* f);
415 void oops_interpreted_do(OopClosure* f, CLDToOopClosure* cld_f, const RegisterMap* map, bool query_oop_map_cache = true);
416
417 private:
418 void oops_interpreted_arguments_do(Symbol* signature, bool has_receiver, OopClosure* f);
419
420 // Iteration of oops
421 void oops_do_internal(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf, RegisterMap* map, bool use_interpreter_oop_map_cache);
422 void oops_entry_do(OopClosure* f, const RegisterMap* map);
423 void oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map);
424 int adjust_offset(Method* method, int index); // helper for above fn
425 public:
426 // Memory management
427 void oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf, RegisterMap* map) { oops_do_internal(f, cld_f, cf, map, true); }
428 void nmethods_do(CodeBlobClosure* cf);
429
430 // RedefineClasses support for finding live interpreted methods on the stack
431 void metadata_do(void f(Metadata*));
432
433 void gc_prologue();
434 void gc_epilogue();
|
394 // For debugging
395 private:
396 const char* print_name() const;
397
398 void describe_pd(FrameValues& values, int frame_no);
399
400 public:
401 void print_value() const { print_value_on(tty,NULL); }
402 void print_value_on(outputStream* st, JavaThread *thread) const;
403 void print_on(outputStream* st) const;
404 void interpreter_frame_print_on(outputStream* st) const;
405 void print_on_error(outputStream* st, char* buf, int buflen, bool verbose = false) const;
406
407 // Add annotated descriptions of memory locations belonging to this frame to values
408 void describe(FrameValues& values, int frame_no);
409
410 // Conversion from an VMReg to physical stack location
411 oop* oopmapreg_to_location(VMReg reg, const RegisterMap* regmap) const;
412
413 // Oops-do's
414 void oops_compiled_arguments_do(Symbol* signature, bool has_receiver, bool has_appendix, const RegisterMap* reg_map, OopClosure* f);
415 void oops_interpreted_do(OopClosure* f, CLDToOopClosure* cld_f, const RegisterMap* map, bool query_oop_map_cache = true);
416
417 private:
418 void oops_interpreted_arguments_do(Symbol* signature, bool has_receiver, OopClosure* f);
419
420 // Iteration of oops
421 void oops_do_internal(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf, RegisterMap* map, bool use_interpreter_oop_map_cache);
422 void oops_entry_do(OopClosure* f, const RegisterMap* map);
423 void oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map);
424 int adjust_offset(Method* method, int index); // helper for above fn
425 public:
426 // Memory management
427 void oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf, RegisterMap* map) { oops_do_internal(f, cld_f, cf, map, true); }
428 void nmethods_do(CodeBlobClosure* cf);
429
430 // RedefineClasses support for finding live interpreted methods on the stack
431 void metadata_do(void f(Metadata*));
432
433 void gc_prologue();
434 void gc_epilogue();
|