aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2023-04-13 14:42:06 -0300
committerArnaldo Carvalho de Melo <acme@redhat.com>2023-04-13 14:42:06 -0300
commitbfa033b07f50a20229f33479c1058a3c7c22453f (patch)
treec0da2a17a2e7988d1d9bfe6f31fd3f206d69150a
parentafca84ff989d97292fd79077439cbf303a8f755e (diff)
downloaddwarves-bfa033b07f50a20229f33479c1058a3c7c22453f.tar.gz
pdwtags: Print DW_TAG_constant tags
First seen in Go compile units: $ readelf -wi main | grep DW_AT_language -m1 <33> DW_AT_language : 22 (Go) $ pdwtags main | grep Constants: -A20 /* Constants: */ const vendor/golang.org/x/net/dns/dnsmessage.Type vendor/golang.org/x/net/dns/dnsmessage.TypeA = 1; /* size: 2 */ const vendor/golang.org/x/net/dns/dnsmessage.Type vendor/golang.org/x/net/dns/dnsmessage.TypeNS = 2; /* size: 2 */ const vendor/golang.org/x/net/dns/dnsmessage.Type vendor/golang.org/x/net/dns/dnsmessage.TypeCNAME = 5; /* size: 2 */ const vendor/golang.org/x/net/dns/dnsmessage.Type vendor/golang.org/x/net/dns/dnsmessage.TypeSOA = 6; /* size: 2 */ const vendor/golang.org/x/net/dns/dnsmessage.Type vendor/golang.org/x/net/dns/dnsmessage.TypePTR = 12; /* size: 2 */ const vendor/golang.org/x/net/dns/dnsmessage.Type vendor/golang.org/x/net/dns/dnsmessage.TypeMX = 15; /* size: 2 */ const vendor/golang.org/x/net/dns/dnsmessage.Type vendor/golang.org/x/net/dns/dnsmessage.TypeTXT = 16; /* size: 2 */ const vendor/golang.org/x/net/dns/dnsmessage.Type vendor/golang.org/x/net/dns/dnsmessage.TypeAAAA = 28; /* size: 2 */ const vendor/golang.org/x/net/dns/dnsmessage.Type vendor/golang.org/x/net/dns/dnsmessage.TypeSRV = 33; /* size: 2 */ const vendor/golang.org/x/net/dns/dnsmessage.Type vendor/golang.org/x/net/dns/dnsmessage.TypeOPT = 41; /* size: 2 */ $ Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r--pdwtags.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/pdwtags.c b/pdwtags.c
index 8b1d6f1..5b62218 100644
--- a/pdwtags.c
+++ b/pdwtags.c
@@ -67,6 +67,11 @@ static int cu__emit_tags(struct cu *cu)
printf(" /* size: %zd */\n\n", tag__size(tag, cu));
}
+ puts("\n\n/* Constants: */\n");
+ cu__for_each_constant(cu, i, tag) {
+ tag__fprintf(tag, cu, NULL, stdout);
+ printf(" /* size: %zd */\n\n", tag__size(tag, cu));
+ }
return 0;
}