365 void describe_pd(FrameValues& values, int frame_no);
366
367 public:
368 void print_value() const { print_value_on(tty,NULL); }
369 void print_value_on(outputStream* st, JavaThread *thread) const;
370 void print_on(outputStream* st) const;
371 void interpreter_frame_print_on(outputStream* st) const;
372 void print_on_error(outputStream* st, char* buf, int buflen, bool verbose = false) const;
373 static void print_C_frame(outputStream* st, char* buf, int buflen, address pc);
374
375 // Add annotated descriptions of memory locations belonging to this frame to values
376 void describe(FrameValues& values, int frame_no);
377
378 // Conversion from a VMReg to physical stack location
379 address oopmapreg_to_location(VMReg reg, const RegisterMap* reg_map) const;
380 oop* oopmapreg_to_oop_location(VMReg reg, const RegisterMap* reg_map) const;
381
382 // Oops-do's
383 void oops_compiled_arguments_do(Symbol* signature, bool has_receiver, bool has_appendix, const RegisterMap* reg_map, OopClosure* f) const;
384 void oops_interpreted_do(OopClosure* f, const RegisterMap* map, bool query_oop_map_cache = true) const;
385
386 private:
387 void oops_interpreted_arguments_do(Symbol* signature, bool has_receiver, OopClosure* f) const;
388
389 // Iteration of oops
390 void oops_do_internal(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map,
391 bool use_interpreter_oop_map_cache, DerivedPointerIterationMode derived_mode) const;
392 void oops_entry_do(OopClosure* f, const RegisterMap* map) const;
393 void oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map,
394 DerivedPointerIterationMode derived_mode) const;
395 int adjust_offset(Method* method, int index); // helper for above fn
396 public:
397 // Memory management
398 void oops_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map,
399 DerivedPointerIterationMode derived_mode) const;
400 void oops_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map) const;
401 void nmethods_do(CodeBlobClosure* cf) const;
402
403 // RedefineClasses support for finding live interpreted methods on the stack
404 void metadata_do(MetadataClosure* f) const;
|
365 void describe_pd(FrameValues& values, int frame_no);
366
367 public:
368 void print_value() const { print_value_on(tty,NULL); }
369 void print_value_on(outputStream* st, JavaThread *thread) const;
370 void print_on(outputStream* st) const;
371 void interpreter_frame_print_on(outputStream* st) const;
372 void print_on_error(outputStream* st, char* buf, int buflen, bool verbose = false) const;
373 static void print_C_frame(outputStream* st, char* buf, int buflen, address pc);
374
375 // Add annotated descriptions of memory locations belonging to this frame to values
376 void describe(FrameValues& values, int frame_no);
377
378 // Conversion from a VMReg to physical stack location
379 address oopmapreg_to_location(VMReg reg, const RegisterMap* reg_map) const;
380 oop* oopmapreg_to_oop_location(VMReg reg, const RegisterMap* reg_map) const;
381
382 // Oops-do's
383 void oops_compiled_arguments_do(Symbol* signature, bool has_receiver, bool has_appendix, const RegisterMap* reg_map, OopClosure* f) const;
384 void oops_interpreted_do(OopClosure* f, const RegisterMap* map, bool query_oop_map_cache = true) const;
385 void buffered_values_interpreted_do(BufferedValueClosure* f);
386
387 private:
388 void oops_interpreted_arguments_do(Symbol* signature, bool has_receiver, OopClosure* f) const;
389
390 // Iteration of oops
391 void oops_do_internal(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map,
392 bool use_interpreter_oop_map_cache, DerivedPointerIterationMode derived_mode) const;
393 void oops_entry_do(OopClosure* f, const RegisterMap* map) const;
394 void oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map,
395 DerivedPointerIterationMode derived_mode) const;
396 int adjust_offset(Method* method, int index); // helper for above fn
397 public:
398 // Memory management
399 void oops_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map,
400 DerivedPointerIterationMode derived_mode) const;
401 void oops_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map) const;
402 void nmethods_do(CodeBlobClosure* cf) const;
403
404 // RedefineClasses support for finding live interpreted methods on the stack
405 void metadata_do(MetadataClosure* f) const;
|