diff options
author | David Mitchell <davem@iabyn.com> | 2016-09-05 11:15:49 +0100 |
---|---|---|
committer | David Mitchell <davem@iabyn.com> | 2016-09-05 12:00:05 +0100 |
commit | 27604593363c36604b7213ec7d405d21ef58f37b (patch) | |
tree | b7068bbc9beb14f4964af67f8a780cff44699bdf /dump.c | |
parent | 68d1ee858a9172f8fd376b2e4aca1cf5b1ecfaeb (diff) | |
download | perl-27604593363c36604b7213ec7d405d21ef58f37b.tar.gz |
do_sv_dump(): handle CvSTART() as slab address
If a CV is CvSLABBED(), then CvSTART() points to the op slab rather than a
start op. Make Perl_do_sv_dump() display this more informatively.
Diffstat (limited to 'dump.c')
-rw-r--r-- | dump.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -1936,7 +1936,12 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo do_hv_dump(level, file, " COMP_STASH", CvSTASH(sv)); if (!CvISXSUB(sv)) { if (CvSTART(sv)) { - Perl_dump_indent(aTHX_ level, file, + if (CvSLABBED(sv)) + Perl_dump_indent(aTHX_ level, file, + " SLAB = 0x%"UVxf"\n", + PTR2UV(CvSTART(sv))); + else + Perl_dump_indent(aTHX_ level, file, " START = 0x%"UVxf" ===> %"IVdf"\n", PTR2UV(CvSTART(sv)), (IV)sequence_num(CvSTART(sv))); |