diff options
Diffstat (limited to 'vm_dump.c')
-rw-r--r-- | vm_dump.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -36,6 +36,8 @@ control_frame_dump(rb_thread_t *th, rb_control_frame_t *cfp) const char *magic, *iseq_name = "-", *selfstr = "-", *biseq_name = "-"; VALUE tmp; + const rb_method_entry_t *me; + if (cfp->block_iseq != 0 && !RUBY_VM_IFUNC_P(cfp->block_iseq)) { biseq_name = ""; /* RSTRING(cfp->block_iseq->location.label)->ptr; */ } @@ -105,8 +107,8 @@ control_frame_dump(rb_thread_t *th, rb_control_frame_t *cfp) } } } - else if (cfp->me) { - iseq_name = rb_id2name(cfp->me->def->original_id); + else if ((me = rb_vm_frame_method_entry(cfp)) != NULL) { + iseq_name = rb_id2name(me->def->original_id); snprintf(posbuf, MAX_POSBUF, ":%s", iseq_name); line = -1; } |