[PATCH] Print die_hash2 for --odr --devel-dump-dies

Tom de Vries tdevries@suse.de
Mon Feb 15 20:34:17 GMT 2021


Hi,

For --odr, there's an additional hash value, die->u.p1.die_hash2.

Print this with --devel-dump-dies, such that we have:
...
$ dwz --devel-dump-dies --odr odr-struct
  114 O f56004ac(cd46c7ab) f56004ac aaa structure_type
  ...
  1ba O f56004ac(cd46c7ab) f56004ac aaa structure_type
...

Used to debug PR27400.

Any comments?

Thanks,
- Tom

Print die_hash2 for --odr --devel-dump-dies

2021-02-15  Tom de Vries  <tdevries@suse.de>

	* dwz.c (dump_die_with_indent): Print die->u.p1.die_hash2.

---
 dwz.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/dwz.c b/dwz.c
index 17921f0..80bc1e7 100644
--- a/dwz.c
+++ b/dwz.c
@@ -5452,11 +5452,13 @@ dump_die_with_indent (int indent, dw_die_ref die)
   else
     {
       const char *name = get_name (die);
-      fprintf (stderr, "%*s %x %c %x %x %s %s", indent, "", die->die_offset,
+      fprintf (stderr, "%*s %x %c %x", indent, "", die->die_offset,
 	       die->die_ck_state == CK_KNOWN ? 'O' : 'X',
-	       (unsigned) die->u.p1.die_hash,
-	       (unsigned) die->u.p1.die_ref_hash, name ? name : "",
-	       get_DW_TAG_name (die->die_tag) + 7);
+	       (unsigned) die->u.p1.die_hash);
+      if (odr && die->die_odr_state != ODR_NONE)
+	  fprintf (stderr, "(%x)", (unsigned) die->u.p1.die_hash2);
+      fprintf (stderr, " %x %s %s", (unsigned) die->u.p1.die_ref_hash,
+	       name ? name : "", get_DW_TAG_name (die->die_tag) + 7);
       dump_type (die);
     }
   fprintf (stderr, "\n");


More information about the Dwz mailing list