From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 89404 invoked by alias); 3 Dec 2019 19:56:15 -0000 Mailing-List: contact dwz-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Post: List-Help: List-Subscribe: Sender: dwz-owner@sourceware.org Received: (qmail 89374 invoked by uid 89); 3 Dec 2019 19:56:14 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.100.3 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.1 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS autolearn=ham version=3.3.1 spammy=41706 X-Spam-Status: No, score=-25.1 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on sourceware.org X-Spam-Level: X-HELO: mx1.suse.de X-Virus-Scanned: by amavisd-new at test-mx.suse.de Date: Tue, 01 Jan 2019 00:00:00 -0000 From: Tom de Vries To: dwz@sourceware.org, jakub@redhat.com Subject: [committed] Handle die_offset == -1U in dump_die Message-ID: <20191203195608.GA24490@delia> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) X-SW-Source: 2019-q4/txt/msg00112.txt.bz2 Hi, Handle representant DIEs (with die_offset -1U) by printing the associated duplicate chain: ... (gdb) call dump_die (child) -1 class_type -> 5a bla class_type -> ef bla class_type ... Committed to trunk. Thanks, - Tom Handle die_offset == -1U in dump_die 2019-12-02 Tom de Vries * dwz.c (dump_die_with_indent): Handle die->die_offset == -1U. --- dwz.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/dwz.c b/dwz.c index 00a08b0..e533993 100644 --- a/dwz.c +++ b/dwz.c @@ -4170,6 +4170,19 @@ dump_die_with_indent (int indent, dw_die_ref die) { if (die == NULL) fprintf (stderr, "%*s null", indent, ""); + else if (die->die_offset == -1U) + { + fprintf (stderr, "%*s -1 %s", indent, "", + get_DW_TAG_name (die->die_tag) + 7); + dw_die_ref d = die->die_nextdup; + while (d) + { + const char *name = get_AT_string (d, DW_AT_name); + fprintf (stderr, " -> %x %s %s", d->die_offset, name ? name : "", + get_DW_TAG_name (d->die_tag) + 7); + d = d->die_nextdup; + } + } else if (die->die_collapsed_child) { fprintf (stderr, "%*s %x %c", indent, "", die->die_offset,