summaryrefslogtreecommitdiff
path: root/dump.c
diff options
context:
space:
mode:
authorDavid Mitchell <davem@iabyn.com>2016-09-05 11:15:49 +0100
committerDavid Mitchell <davem@iabyn.com>2016-09-05 12:00:05 +0100
commit27604593363c36604b7213ec7d405d21ef58f37b (patch)
treeb7068bbc9beb14f4964af67f8a780cff44699bdf /dump.c
parent68d1ee858a9172f8fd376b2e4aca1cf5b1ecfaeb (diff)
downloadperl-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.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/dump.c b/dump.c
index fd3d7ccfb7..e69421be6f 100644
--- a/dump.c
+++ b/dump.c
@@ -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)));