X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/bf9a4d2d5d7f2ccc6d7551b2e0fda513d75dcf3b..97eac949b0a5801c6ea6dfa29f54d0e6ecbb7137:/dump.c?ds=sidebyside diff --git a/dump.c b/dump.c index 91d2c2b..c848dcd 100644 --- a/dump.c +++ b/dump.c @@ -1328,9 +1328,10 @@ const struct flag_to_name cv_flags_names[] = { {CVf_CVGV_RC, "CVGV_RC,"}, {CVf_DYNFILE, "DYNFILE,"}, {CVf_AUTOLOAD, "AUTOLOAD,"}, - {CVf_HASEVAL, "HASEVAL"}, + {CVf_HASEVAL, "HASEVAL,"}, {CVf_SLABBED, "SLABBED,"}, {CVf_NAMED, "NAMED,"}, + {CVf_LEXICAL, "LEXICAL,"}, {CVf_ISXSUB, "ISXSUB,"} }; @@ -1345,7 +1346,6 @@ const struct flag_to_name gp_flags_names[] = { {GVf_INTRO, "INTRO,"}, {GVf_MULTI, "MULTI,"}, {GVf_ASSUMECV, "ASSUMECV,"}, - {GVf_IN_PAD, "IN_PAD,"} }; const struct flag_to_name gp_flags_imported_names[] = { @@ -1396,7 +1396,6 @@ const struct flag_to_name regexp_core_intflags_names[] = { {PREGf_CANY_SEEN, "CANY_SEEN,"}, {PREGf_GPOS_SEEN, "GPOS_SEEN,"}, {PREGf_GPOS_FLOAT, "GPOS_FLOAT,"}, - {PREGf_ANCH_BOL, "ANCH_BOL,"}, {PREGf_ANCH_MBOL, "ANCH_MBOL,"}, {PREGf_ANCH_SBOL, "ANCH_SBOL,"}, {PREGf_ANCH_GPOS, "ANCH_GPOS,"}, @@ -2029,6 +2028,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo } Perl_dump_indent(aTHX_ level, file, " NAMELEN = %"IVdf"\n", (IV)GvNAMELEN(sv)); do_hv_dump (level, file, " GvSTASH", GvSTASH(sv)); + Perl_dump_indent(aTHX_ level, file, " FLAGS = 0x%"UVxf"\n", (UV)GvFLAGS(sv)); Perl_dump_indent(aTHX_ level, file, " GP = 0x%"UVxf"\n", PTR2UV(GvGP(sv))); if (!GvGP(sv)) break; @@ -2040,9 +2040,12 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo Perl_dump_indent(aTHX_ level, file, " HV = 0x%"UVxf"\n", PTR2UV(GvHV(sv))); Perl_dump_indent(aTHX_ level, file, " CV = 0x%"UVxf"\n", PTR2UV(GvCV(sv))); Perl_dump_indent(aTHX_ level, file, " CVGEN = 0x%"UVxf"\n", (UV)GvCVGEN(sv)); + Perl_dump_indent(aTHX_ level, file, " GPFLAGS = 0x%"UVxf + " (%s)\n", + (UV)GvGPFLAGS(sv), + GvALIASED_SV(sv) ? "ALIASED_SV" : ""); Perl_dump_indent(aTHX_ level, file, " LINE = %"IVdf"\n", (IV)GvLINE(sv)); Perl_dump_indent(aTHX_ level, file, " FILE = \"%s\"\n", GvFILE(sv)); - Perl_dump_indent(aTHX_ level, file, " FLAGS = 0x%"UVxf"\n", (UV)GvFLAGS(sv)); do_gv_dump (level, file, " EGV", GvEGV(sv)); break; case SVt_PVIO: @@ -2262,12 +2265,20 @@ Perl_debop(pTHX_ const OP *o) break; case OP_GVSV: case OP_GV: - if (cGVOPo_gv) { + if (cGVOPo_gv && isGV(cGVOPo_gv)) { SV * const sv = newSV(0); gv_fullname3(sv, cGVOPo_gv, NULL); PerlIO_printf(Perl_debug_log, "(%s)", SvPV_nolen_const(sv)); SvREFCNT_dec_NN(sv); } + else if (cGVOPo_gv) { + SV * const sv = newSV(0); + assert(SvROK(cGVOPo_gv)); + assert(SvTYPE(SvRV(cGVOPo_gv)) == SVt_PVCV); + PerlIO_printf(Perl_debug_log, "(cv ref: %s)", + SvPV_nolen_const(cv_name((CV *)SvRV(cGVOPo_gv),sv))); + SvREFCNT_dec_NN(sv); + } else PerlIO_printf(Perl_debug_log, "(NULL)"); break;