497 address* orig_pc_addr(const frame* fr);
498
499 public:
500 // copying of debugging information
501 void copy_scopes_pcs(PcDesc* pcs, int count);
502 void copy_scopes_data(address buffer, int size);
503
504 // Accessor/mutator for the original pc of a frame before a frame was deopted.
505 address get_original_pc(const frame* fr) { return *orig_pc_addr(fr); }
506 void set_original_pc(const frame* fr, address pc) { *orig_pc_addr(fr) = pc; }
507
508 // jvmti support:
509 void post_compiled_method_load_event();
510 jmethodID get_and_cache_jmethod_id();
511
512 // verify operations
513 void verify();
514 void verify_scopes();
515 void verify_interrupt_point(address interrupt_point);
516
517 // printing support
518 void print() const;
519 void print_relocations() PRODUCT_RETURN;
520 void print_pcs() PRODUCT_RETURN;
521 void print_scopes() PRODUCT_RETURN;
522 void print_dependencies() PRODUCT_RETURN;
523 void print_value_on(outputStream* st) const PRODUCT_RETURN;
524 void print_calls(outputStream* st) PRODUCT_RETURN;
525 void print_handler_table() PRODUCT_RETURN;
526 void print_nul_chk_table() PRODUCT_RETURN;
527 void print_recorded_oops() PRODUCT_RETURN;
528 void print_recorded_metadata() PRODUCT_RETURN;
529
530 void maybe_print_nmethod(DirectiveSet* directive);
531 void print_nmethod(bool print_code);
532
533 // need to re-define this from CodeBlob else the overload hides it
534 virtual void print_on(outputStream* st) const { CodeBlob::print_on(st); }
535 void print_on(outputStream* st, const char* msg) const;
536
|
497 address* orig_pc_addr(const frame* fr);
498
499 public:
500 // copying of debugging information
501 void copy_scopes_pcs(PcDesc* pcs, int count);
502 void copy_scopes_data(address buffer, int size);
503
504 // Accessor/mutator for the original pc of a frame before a frame was deopted.
505 address get_original_pc(const frame* fr) { return *orig_pc_addr(fr); }
506 void set_original_pc(const frame* fr, address pc) { *orig_pc_addr(fr) = pc; }
507
508 // jvmti support:
509 void post_compiled_method_load_event();
510 jmethodID get_and_cache_jmethod_id();
511
512 // verify operations
513 void verify();
514 void verify_scopes();
515 void verify_interrupt_point(address interrupt_point);
516
517 // verify that accessing object fields (nmethod and parent) is safe.
518 static bool access_is_safe(nmethod* nm);
519
520 // printing support
521 void print() const;
522 void print_relocations() PRODUCT_RETURN;
523 void print_pcs() PRODUCT_RETURN;
524 void print_scopes() PRODUCT_RETURN;
525 void print_dependencies() PRODUCT_RETURN;
526 void print_value_on(outputStream* st) const PRODUCT_RETURN;
527 void print_calls(outputStream* st) PRODUCT_RETURN;
528 void print_handler_table() PRODUCT_RETURN;
529 void print_nul_chk_table() PRODUCT_RETURN;
530 void print_recorded_oops() PRODUCT_RETURN;
531 void print_recorded_metadata() PRODUCT_RETURN;
532
533 void maybe_print_nmethod(DirectiveSet* directive);
534 void print_nmethod(bool print_code);
535
536 // need to re-define this from CodeBlob else the overload hides it
537 virtual void print_on(outputStream* st) const { CodeBlob::print_on(st); }
538 void print_on(outputStream* st, const char* msg) const;
539
|