From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2326 invoked by alias); 20 Jan 2002 20:54:02 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 2279 invoked from network); 20 Jan 2002 20:54:00 -0000 Received: from unknown (HELO nevyn.them.org) (128.2.145.6) by sources.redhat.com with SMTP; 20 Jan 2002 20:54:00 -0000 Received: from drow by nevyn.them.org with local (Exim 3.33 #1 (Debian)) id 16SOyc-000171-00; Sun, 20 Jan 2002 15:54:06 -0500 Date: Sun, 20 Jan 2002 12:54:00 -0000 From: Daniel Jacobowitz To: Per Bothner Cc: gdb-patches@sources.redhat.com Subject: Re: patch to robustify gnuv3_rtti_type Message-ID: <20020120155405.A3461@nevyn.them.org> Mail-Followup-To: Per Bothner , gdb-patches@sources.redhat.com References: <3C49D9DF.4040700@bothner.com> <20020119183848.A32307@nevyn.them.org> <3C4A0C1F.6070903@bothner.com> <20020119192000.A1028@nevyn.them.org> <3C4B2C01.2070701@bothner.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3C4B2C01.2070701@bothner.com> User-Agent: Mutt/1.3.23i X-SW-Source: 2002-01/txt/msg00597.txt.bz2 On Sun, Jan 20, 2002 at 12:43:45PM -0800, Per Bothner wrote: > Daniel Jacobowitz wrote: > >Go look at gnuv3_rtti_type again. It's misnamed; it does not use RTTI > >at all. It only looks that the vtable exists and has a name demangled to > >'vtable for '. > > Yes. With my current patches (gcc and gdb), I get when debugging Java > runtime (written in C++): > > (gdb) whatis source > type = Class * > (gdb) p *source > can't find class named `java::lang::Class', as given by C++ RTTI > > That is actually an improvement. The problem at this point is > inconsistent handling of namespaces bwteeen g++ and gcj. gcj > emits a class named 'java.lang.Class' (including the periods), > while g++ emits plain 'Class'. So gdb does not realize these are > the same class. And neither g++ or gcj emits proper namespace > information. I think this is one of the biggest stumbling-blocks > to proper Java debugging. Wait a second. Are you debugging Java or C++ here? Or are you debugging a Java program and the C++ runtime, and the same thing is accessible as java::lang::Class and java.lang.Class? > What is the current status of support for namepace-handling in gdb? > If we fix gcj so it emits the same debug into as g++ (i.e. > 'java.lang.Class' is emitted as plain 'Class'), can gdb "do the > right thing" based on the mangled names? If not, can gdb handle > dwarf2 namespace information (which g++ currently supresses)? We are not currently ready for dwarf2 namespace information, as I understand it. Fixing it should be the work of a few hours, though. The state of namespaces through the rest of GDB is a little more questionable. I know the v3 support file needs changes. Why do you currently emit java.lang.Class? -- Daniel Jacobowitz Carnegie Mellon University MontaVista Software Debian GNU/Linux Developer