From 78a613f4a3b21348e01c08c1161088be15299aa3 Mon Sep 17 00:00:00 2001 From: Matthew Horsfall Date: Tue, 23 Aug 2022 20:49:08 -0400 Subject: [PATCH] dump.c: When dumping SVt_PVOBJ, show field names as well This way, instead of: Field No. 0 SV = PV(0x5638ccf57fb0) at 0x5638ccf7b9c0 REFCNT = 1 ... You get: Field No. 0 ($name) SV = PV(0x5638ccf57fb0) at 0x5638ccf7b9c0 REFCNT = 1 --- dump.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dump.c b/dump.c index b85bd60d984f..9c33b854efdc 100644 --- a/dump.c +++ b/dump.c @@ -2660,13 +2660,17 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo if (nest < maxnest && ObjectFIELDS(sv)) { SSize_t count; SV **svp = ObjectFIELDS(sv); + PADNAME **pname = PadnamelistARRAY(HvAUX(SvSTASH(sv))->xhv_class_fields); for (count = 0; count <= ObjectMAXFIELD(sv) && count < maxnest; count++, svp++) { SV *const field = *svp; - Perl_dump_indent(aTHX_ level + 1, file, "Field No. %" IVdf "\n", - (IV)count); + PADNAME *pn = pname[count]; + + Perl_dump_indent(aTHX_ level + 1, file, "Field No. %" IVdf " (%s)\n", + (IV)count, PadnamePV(pn)); + do_sv_dump(level+1, file, field, nest+1, maxnest, dumpops, pvlim); } }