From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2819 invoked by alias); 6 Feb 2011 22:45:58 -0000 Received: (qmail 2811 invoked by uid 22791); 6 Feb 2011 22:45:57 -0000 X-SWARE-Spam-Status: No, hits=-6.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,TW_GC,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 06 Feb 2011 22:45:52 +0000 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p16Mjp55025362 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Sun, 6 Feb 2011 17:45:51 -0500 Received: from host1.dyn.jankratochvil.net (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p16MjnAR028438 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 6 Feb 2011 17:45:50 -0500 Received: from host1.dyn.jankratochvil.net (localhost [127.0.0.1]) by host1.dyn.jankratochvil.net (8.14.4/8.14.4) with ESMTP id p16MjmGb021624; Sun, 6 Feb 2011 23:45:48 +0100 Received: (from jkratoch@localhost) by host1.dyn.jankratochvil.net (8.14.4/8.14.4/Submit) id p16Mjm1a021623; Sun, 6 Feb 2011 23:45:48 +0100 Date: Sun, 06 Feb 2011 22:45:00 -0000 From: Jan Kratochvil To: Keith Seitz Cc: Tom Tromey , gdb-patches@sourceware.org Subject: [patch 0/3] Re: [RFA] c++/11734 revisited (and c++/12273) Message-ID: <20110206224548.GA5000@host1.dyn.jankratochvil.net> References: <4D002672.5090504@redhat.com> <4D07CD68.5000700@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4D07CD68.5000700@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-02/txt/msg00115.txt.bz2 Hi Keith, the patch 42284fdf9d8cdb20c8e833bdbdb2b56977fea525 http://sourceware.org/ml/gdb-cvs/2010-03/msg00082.html dwarf2_physname patchset: [RFA] dwarf2_physname FINAL http://sourceware.org/ml/gdb-patches/2010-03/msg00220.html contained three parts: (a) Drop DW_AT_linkage_name use. =>PR 12328 - the const/volatile qualifiers =>PR 11734 non-decode_compound - psymtabs no longer having parameter types * To be definitely kept in. (b) switch from classname::any(any) linespec resolving by decode_variable to the classname-scope aware decode_compound. =>PR 11734 decode_compound - quoting fixup =>PR 12273 - decode_compound not aware of minimal symbols * Why to apply this part is this mail about. (c) Some fixes of formerly unsupported linespecs (such as trailing ` const'). * Partial port to the legacy GDB codebase. I do not fully understand the reasons for part (b). The old code is not nice but IMO neither is the new code (already checked in by the physname patch) due to the linespec.c caller. Moreover the new code has shown its regressions. If the code should be nice I tried archer-jankratochvil-linespec where linespec is based on the expressions. Noted by Daniel Jacobowitz before: http://sourceware.org/ml/gdb-patches/2009-11/msg00266.html It still has some regressions but the most common C++ cases work there and I find it doable with some more time (mostly if the error messages can be changed). The are problems with: * expression evaluator cares about the function value (=address) where the function symbol for linespec is already dropped. * linespec should have no side effects. But the expression evaluator's EVAL_AVOID_SIDE_EFFECTS mode cares only about types, not about values. This "revert" series: [patch 1/3] is revert of the parts (b)+(c). [patch 2/3] is application of the 11734 non-decode_compound part psymtabs fix. [patch 3/3] is reapplication of (c). Afterwards there remain these regresions: +FAIL: gdb.cp/pr12273.exp: setting breakpoint at GDB::operator == +FAILs in gdb.java/jmisc.exp and gdb.java/jprint.exp (IMHO gcj gdb.java/* should not be anything relevant with openjdk now.) OTOH namespaces work better with these three "revert" patches while it does not with the patches of yours under review. With the testfiles http://sourceware.org/ml/gdb-patches/2011-01/msg00514.html ../gdb -nx gdb.cp/pr11734 -ex start -ex 'b pr11734::foo()' Sure the namespaces could be fixed in your patchset, but also `operator ==' could be futher fixed up in these "revert" patches. That is in general I would be either for futher not-nice fixing up the pre-physname code or for the expression way like archer-jankratochvil-linespec does. Still at the moment your patchset gives the best user experience, just it is a new untested code which does not make it nice anyway. Thanks, Jan