From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9300 invoked by alias); 19 Feb 2003 14:59:09 -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 9293 invoked from network); 19 Feb 2003 14:59:08 -0000 Received: from unknown (HELO mx1.redhat.com) (172.16.49.200) by 172.16.49.205 with SMTP; 19 Feb 2003 14:59:08 -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 h1JEx8K29905 for ; Wed, 19 Feb 2003 09:59:08 -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 h1JEx8a25049; Wed, 19 Feb 2003 09:59:08 -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 h1JEx6502677; Wed, 19 Feb 2003 09:59:06 -0500 Received: by localhost.redhat.com (Postfix, from userid 469) id 4BA6CFF79; Wed, 19 Feb 2003 10:03:13 -0500 (EST) From: Elena Zannoni MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15955.40112.854152.289249@localhost.redhat.com> Date: Wed, 19 Feb 2003 14:59:00 -0000 To: Adam Fedor Cc: GDB Patches , Michael Snyder , Elena Zannoni Subject: Re: [RFA] Demangle ObjC symbols in symtab.c [4/5] In-Reply-To: <3E1F971E.4020204@doc.com> References: <3E1616B7.1010001@doc.com> <3E1637DA.BFD960F9@redhat.com> <3E1F971E.4020204@doc.com> X-SW-Source: 2003-02/txt/msg00403.txt.bz2 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 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.