From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24903 invoked by alias); 19 Feb 2003 15:15:47 -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 24892 invoked from network); 19 Feb 2003 15:15:46 -0000 Received: from unknown (HELO mx1.redhat.com) (172.16.49.200) by 172.16.49.205 with SMTP; 19 Feb 2003 15:15:46 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id h1JFFkK02344 for ; Wed, 19 Feb 2003 10:15:46 -0500 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [172.16.52.156]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h1JFFka29890 for ; Wed, 19 Feb 2003 10:15:46 -0500 Received: from localhost.redhat.com (romulus-int.sfbay.redhat.com [172.16.27.46]) by pobox.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h1JFFj504698 for ; Wed, 19 Feb 2003 10:15:45 -0500 Received: by localhost.redhat.com (Postfix, from userid 469) id DDCCAFF79; Wed, 19 Feb 2003 10:19:51 -0500 (EST) From: Elena Zannoni MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15955.41111.122391.443705@localhost.redhat.com> Date: Wed, 19 Feb 2003 15:15:00 -0000 To: fedor@doc.com Cc: GDB Patches Subject: Re: [RFA] Demangle ObjC symbols in symtab.c [4/5] In-Reply-To: <15955.40112.854152.289249@localhost.redhat.com> References: <3E1616B7.1010001@doc.com> <3E1637DA.BFD960F9@redhat.com> <3E1F971E.4020204@doc.com> <15955.40112.854152.289249@localhost.redhat.com> X-SW-Source: 2003-02/txt/msg00405.txt.bz2 Elena Zannoni writes: > Adam Fedor writes: > > > > Michael Snyder wrote: > > > Adam Fedor wrote: > > > > > >>2003-01-03 Adam Fedor > > >> > > >> * symtab.c (symbol_init_demangled_name): Check for and demangle > > >> ObjC symbols. > > >> (make_symbol_completion_list): Look for ObjC symbols > > > > > > > > > Not to be too fussy, but these two changes seem unrelated. > > > It might be better to submit them separately. Easier to > > > review and approve. > > > > > > > Here's the first half of the patch again with a small change. > > > > OK > Adam, on second thought, you also need the Makefile dependency change. (no need to resubmit) > elena > > > > 2003-01-10 Adam Fedor > > > > * symtab.c (symbol_init_demangled_name): Check for and demangle > > ObjC symbols. > > > > Index: symtab.c > > =================================================================== > > RCS file: /cvs/src/src/gdb/symtab.c,v > > retrieving revision 1.84 > > diff -u -p -r1.84 symtab.c > > --- symtab.c 2 Jan 2003 14:27:26 -0000 1.84 > > +++ symtab.c 11 Jan 2003 03:51:34 -0000 > > @@ -40,6 +40,7 @@ > > #include "linespec.h" > > #include "source.h" > > #include "filenames.h" /* for FILENAME_CMP */ > > +#include "objc-lang.h" > > > > #include "gdb_obstack.h" > > > > @@ -440,15 +441,31 @@ void > > symbol_init_demangled_name (struct general_symbol_info *gsymbol, > > struct obstack *obstack) > > { > > - char *mangled = gsymbol->name; > > - char *demangled = NULL; > > - > > if (gsymbol->language == language_unknown) > > gsymbol->language = language_auto; > > + > > + if (gsymbol->language == language_objc > > + || gsymbol->language == language_auto) > > + { > > + char *demangled = > > + objc_demangle (gsymbol->name); > > + if (demangled != NULL) > > + { > > + gsymbol->language = language_objc; > > + gsymbol->language_specific.objc_specific.demangled_name = > > + obsavestring (demangled, strlen (demangled), (obstack)); > > + xfree (demangled); > > + } > > + else > > + { > > + gsymbol->language_specific.objc_specific.demangled_name = NULL; > > + } > > + } > > + > > if (gsymbol->language == language_cplus > > || gsymbol->language == language_auto) > > { > > - demangled = > > + char *demangled = > > cplus_demangle (gsymbol->name, DMGL_PARAMS | DMGL_ANSI); > > if (demangled != NULL) > > { > > @@ -462,9 +479,10 @@ symbol_init_demangled_name (struct gener > > gsymbol->language_specific.cplus_specific.demangled_name = NULL; > > } > > } > > + > > if (gsymbol->language == language_java) > > { > > - demangled = > > + char *demangled = > > cplus_demangle (gsymbol->name, > > DMGL_PARAMS | DMGL_ANSI | DMGL_JAVA); > > if (demangled != NULL) > > @@ -831,7 +849,7 @@ lookup_symbol_aux (const char *name, con > > } > > #endif /* 0 */ > > > > - /* C++: If requested to do so by the caller, > > + /* C++/Java/Objective-C: If requested to do so by the caller, > > check to see if NAME is a field of `this'. */ > > if (is_a_field_of_this) > > { > > @@ -1483,9 +1501,9 @@ find_main_psymtab (void) > > for now we don't worry about the slight inefficiency of looking for > > a match we'll never find, since it will go pretty quick. Once the > > binary search terminates, we drop through and do a straight linear > > - search on the symbols. Each symbol which is marked as being a C++ > > - symbol (language_cplus set) has both the encoded and non-encoded names > > - tested for a match. > > + search on the symbols. Each symbol which is marked as being a ObjC/C++ > > + symbol (language_cplus or language_objc set) has both the encoded and > > + non-encoded names tested for a match. > > > > If MANGLED_NAME is non-NULL, verify that any symbol we find has this > > particular mangled name.