void rb_vmdebug_debug_print_pre(rb_thread_t *th, rb_control_frame_t *cfp,VALUE *_pc) { const rb_iseq_t *iseq = cfp->iseq; if (iseq != 0) { ptrdiff_t pc = _pc - iseq->body->iseq_encoded; int i; for (i=0; i<(int)VM_CFP_CNT(th, cfp); i++) { printf(" "); } printf("| "); if(0)printf("[%03ld] ", (long)(cfp->sp - th->stack)); /* printf("%3"PRIdPTRDIFF" ", VM_CFP_CNT(th, cfp)); */ if (pc >= 0) { const VALUE *iseq_original = rb_iseq_original_iseq((rb_iseq_t *)iseq); rb_iseq_disasm_insn(0, iseq_original, (size_t)pc, iseq, 0); } } #if VMDEBUG > 3 fprintf(stderr, " (1)"); rb_vmdebug_debug_print_register(th); #endif }
void rb_vmdebug_debug_print_pre(rb_thread_t *th, rb_control_frame_t *cfp) { rb_iseq_t *iseq = cfp->iseq; if (iseq != 0) { VALUE *seq = iseq->iseq; ptrdiff_t pc = cfp->pc - iseq->iseq_encoded; int i; for (i=0; i<(int)VM_CFP_CNT(th, cfp); i++) { printf(" "); } printf("| "); /* printf("%3"PRIdPTRDIFF" ", VM_CFP_CNT(th, cfp)); */ if (pc >= 0) { rb_iseq_disasm_insn(0, seq, (size_t)pc, iseq, 0); } } #if VMDEBUG > 3 fprintf(stderr, " (1)"); rb_vmdebug_debug_print_register(th); #endif }
void rb_vmdebug_debug_print_pre(rb_thread_t *th, rb_control_frame_t *cfp) { rb_iseq_t *iseq = cfp->iseq; if (iseq != 0 && VM_FRAME_TYPE(cfp) != VM_FRAME_MAGIC_FINISH) { VALUE *seq = iseq->iseq; int pc = cfp->pc - iseq->iseq_encoded; printf("%3"PRIdPTRDIFF" ", VM_CFP_CNT(th, cfp)); rb_iseq_disasm_insn(0, seq, pc, iseq, 0); } #if VMDEBUG > 3 fprintf(stderr, " (1)"); rb_vmdebug_debug_print_register(th); #endif }