From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12662 invoked by alias); 18 Oct 2002 21:24:24 -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 12628 invoked from network); 18 Oct 2002 21:24:23 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 18 Oct 2002 21:24:23 -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 g9IL3Mw28290 for ; Fri, 18 Oct 2002 17:03:22 -0400 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 g9ILOMf16911; Fri, 18 Oct 2002 17:24:22 -0400 Received: from localhost.redhat.com (IDENT:G9N4ZUtHra7eLYfnuMM7+7QTgoCJxBjj@tooth.toronto.redhat.com [172.16.14.29]) by pobox.corp.redhat.com (8.11.6/8.11.6) with ESMTP id g9ILOKT10830; Fri, 18 Oct 2002 17:24:20 -0400 Received: by localhost.redhat.com (Postfix, from userid 469) id 5BA5CFF79; Fri, 18 Oct 2002 17:21:40 -0400 (EDT) From: Elena Zannoni MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15792.31588.221494.528780@localhost.redhat.com> Date: Fri, 18 Oct 2002 14:24:00 -0000 To: Adam Fedor Cc: Jim Blandy , Michael Snyder , gdb-patches@sources.redhat.com Subject: Re: [PATCH] Objective-C language support. In-Reply-To: <3DAB86E8.2040704@doc.com> References: <3D889A97.90202@doc.com> <3DA37290.74A48BF4@redhat.com> <3DAB86E8.2040704@doc.com> X-SW-Source: 2002-10/txt/msg00308.txt.bz2 Adam Fedor writes: > Jim Blandy wrote: > > The function stabsread_objc_colon should be static to stabsread.c, no? > > If that's so, then it should be renamed to something like > > `find_name_end', with a comment above the strchr ('[') != 0 case > > explaining its relevance to Objective-C. Since this function gets > > called on every symbol, it's not an Objective-C specific function; > > only part of it is. > > > > The code needs a comment. Most of GDB's maintainers don't know > > Objective-C, so it would be helpful just to say something like, > > "Objective-C symbols can have names like -[foo:bar:baz]:skun > > Updated patch: > > 2002-10-14 Adam Fedor > > * stabsread.c (find_name_end): New function. > (define_symbol): Use it. > > > > > -- > Adam Fedor, Digital Optics Corp. | I'm glad I hate spinach, because > http://www.doc.com | if I didn't, I'd eat it, and you > | know how I hate the stuff. > Index: stabsread.c > =================================================================== > RCS file: /cvs/src/src/gdb/stabsread.c,v > retrieving revision 1.42 > diff -u -p -r1.42 stabsread.c > --- stabsread.c 11 Oct 2002 14:02:38 -0000 1.42 > +++ stabsread.c 15 Oct 2002 03:06:03 -0000 > @@ -169,6 +169,8 @@ static int > read_cfront_member_functions (struct field_info *, char **, > struct type *, struct objfile *); > > +static char *find_name_end (char *name); > + > /* end new functions added for cfront support */ > > static void > @@ -1271,7 +1273,7 @@ define_symbol (CORE_ADDR valu, char *str > struct objfile *objfile) > { > register struct symbol *sym; > - char *p = (char *) strchr (string, ':'); > + char *p = (char *) find_name_end (string); > int deftype; > int synonym = 0; > register int i; > @@ -2004,7 +2006,8 @@ define_symbol (CORE_ADDR valu, char *str > a typedef for "foo". Unfortunately, cfront never makes the typedef > when translating C++ into C. We make the typedef here so that > "ptype foo" works as expected for cfront translated code. */ > - else if (current_subfile->language == language_cplus) > + else if ((current_subfile->language == language_cplus) > + || (current_subfile->language == language_objc)) > synonym = 1; > > SYMBOL_TYPE (sym) = read_type (&p, objfile); > @@ -5613,6 +5616,32 @@ finish_global_stabs (struct objfile *obj > patch_block_stabs (global_symbols, global_stabs, objfile); > xfree (global_stabs); > global_stabs = NULL; > + } > +} > + > +static char * > +find_name_end (char *name) > +{ > + char *s = name; > + /* Find the end of the name, deliminated by a ':', but don't match > + ObjC symbols which look like -[Foo bar::]:bla. */ Should be "delimited" above, also, could you move the comment to before the function? Hoping Jim doesn't mind... it can go in after these minor changes. thanks Elena > + if (s[0] == '-' || *s == '+') > + { > + /* Must be an ObjC method symbol. */ > + if (s[1] != '[') > + { > + error ("invalid symbol name \"%s\"", name); > + } > + s = strchr (s, ']'); > + if (s == NULL) > + { > + error ("invalid symbol name \"%s\"", name); > + } > + return strchr (s, ':'); > + } > + else > + { > + return strchr (s, ':'); > } > } >