From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22884 invoked by alias); 31 Jul 2003 18:13:58 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 22866 invoked from network); 31 Jul 2003 18:13:57 -0000 Received: from unknown (HELO rwcrmhc11.comcast.net) (204.127.198.35) by sources.redhat.com with SMTP; 31 Jul 2003 18:13:57 -0000 Received: from lucon.org ([12.234.88.5]) by comcast.net (rwcrmhc11) with ESMTP id <2003073118135601300orgkie>; Thu, 31 Jul 2003 18:13:56 +0000 Received: by lucon.org (Postfix, from userid 1000) id AC0E12C4EB; Thu, 31 Jul 2003 18:13:55 +0000 (UTC) Date: Thu, 31 Jul 2003 18:13:00 -0000 From: "H. J. Lu" To: GDB Subject: gdb can't handle a DIE with both sibling and children Message-ID: <20030731181355.GA14242@lucon.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i X-SW-Source: 2003-07/txt/msg00371.txt.bz2 It is entirely possible for a DIE with both sibling and children. But scan_partial_symbols () has /* If the die has a sibling, skip to the sibling. Do not skip enumeration types, we want to record their enumerators. Do not skip namespaces, we want to record symbols inside them. */ if (pdi.sibling && pdi.tag != DW_TAG_enumeration_type && pdi.tag != DW_TAG_namespace) { info_ptr = pdi.sibling; } else if (pdi.has_children) { /* Die has children, but either the optional DW_AT_sibling attribute is missing or we want to look at them. */ nesting_level++; } That is we can't handle a DIE with both sibling and children. How should we fix that? H.J.