< prev index next >

src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp

Print this page




 589   st->print(", RDI=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RDI]);
 590   st->cr();
 591   st->print(  "R8 =" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R8]);
 592   st->print(", R9 =" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R9]);
 593   st->print(", R10=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R10]);
 594   st->print(", R11=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R11]);
 595   st->cr();
 596   st->print(  "R12=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R12]);
 597   st->print(", R13=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R13]);
 598   st->print(", R14=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R14]);
 599   st->print(", R15=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R15]);
 600   st->cr();
 601   st->print(  "RIP=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RIP]);
 602   st->print(", EFLAGS=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EFL]);
 603   st->print(", CSGSFS=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_CSGSFS]);
 604   st->print(", ERR=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_ERR]);
 605   st->cr();
 606   st->print("  TRAPNO=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_TRAPNO]);
 607   st->cr();
 608 #else
 609   for (int r = 0; r < 31; r++)
 610     st->print_cr(  "R%d=" INTPTR_FORMAT, r, (size_t)uc->uc_mcontext.regs[r]);


 611 #endif
 612   st->cr();
 613 
 614   intptr_t *sp = (intptr_t *)os::Linux::ucontext_get_sp(uc);
 615   st->print_cr("Top of Stack: (sp=" PTR_FORMAT ")", p2i(sp));
 616   print_hex_dump(st, (address)sp, (address)(sp + 8*sizeof(intptr_t)), sizeof(intptr_t));
 617   st->cr();
 618 
 619   // Note: it may be unsafe to inspect memory near pc. For example, pc may
 620   // point to garbage if entry point in an nmethod is corrupted. Leave
 621   // this at the end, and hope for the best.
 622   address pc = os::Linux::ucontext_get_pc(uc);
 623   st->print_cr("Instructions: (pc=" PTR_FORMAT ")", p2i(pc));
 624   print_hex_dump(st, pc - 32, pc + 32, sizeof(char));
 625 }
 626 
 627 void os::print_register_info(outputStream *st, const void *context) {
 628   if (context == NULL) return;
 629 
 630   const ucontext_t *uc = (const ucontext_t*)context;




 589   st->print(", RDI=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RDI]);
 590   st->cr();
 591   st->print(  "R8 =" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R8]);
 592   st->print(", R9 =" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R9]);
 593   st->print(", R10=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R10]);
 594   st->print(", R11=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R11]);
 595   st->cr();
 596   st->print(  "R12=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R12]);
 597   st->print(", R13=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R13]);
 598   st->print(", R14=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R14]);
 599   st->print(", R15=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R15]);
 600   st->cr();
 601   st->print(  "RIP=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RIP]);
 602   st->print(", EFLAGS=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EFL]);
 603   st->print(", CSGSFS=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_CSGSFS]);
 604   st->print(", ERR=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_ERR]);
 605   st->cr();
 606   st->print("  TRAPNO=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_TRAPNO]);
 607   st->cr();
 608 #else
 609   for (int r = 0; r < 31; r++) {
 610     st->print("R%-2d=", r);
 611     print_location(st, uc->uc_mcontext.regs[r]);
 612   }
 613 #endif
 614   st->cr();
 615 
 616   intptr_t *sp = (intptr_t *)os::Linux::ucontext_get_sp(uc);
 617   st->print_cr("Top of Stack: (sp=" PTR_FORMAT ")", p2i(sp));
 618   print_hex_dump(st, (address)sp, (address)(sp + 8*sizeof(intptr_t)), sizeof(intptr_t));
 619   st->cr();
 620 
 621   // Note: it may be unsafe to inspect memory near pc. For example, pc may
 622   // point to garbage if entry point in an nmethod is corrupted. Leave
 623   // this at the end, and hope for the best.
 624   address pc = os::Linux::ucontext_get_pc(uc);
 625   st->print_cr("Instructions: (pc=" PTR_FORMAT ")", p2i(pc));
 626   print_hex_dump(st, pc - 32, pc + 32, sizeof(char));
 627 }
 628 
 629 void os::print_register_info(outputStream *st, const void *context) {
 630   if (context == NULL) return;
 631 
 632   const ucontext_t *uc = (const ucontext_t*)context;


< prev index next >