Re: [PATCH] Objective-C language support.

Adam Fedor
2002-10-18T17:06:53Z

Nobody I know can figure out what this does, so for now I'll just drop
it and see if something goes wrong...

Jim Blandy wrote:
> Can we have a more extensive comment here? What are symbols that
> begin with ".objc_"? Why should we ignore them? Where can we find
> more complete documentation for what they mean? (Is there any
> document that describes how Objective C programs are represented at
> the assembly/linkage level?)
>
> Michael Snyder <msnyder@redhat.com> writes:
>
>
>>Adam Fedor wrote:
>>
>>>This patch adds Objective-C language support to gdb based upon a patch
>>>provided by Apple Computer Inc from their version of gdb. Note that the
>>>patch only contains changes to existing files. New files (objc-lang.h,
>>>objc-lang.c, objc-exp.y) and a gdb.objc testsuite directory are located at
>>>
>>>ftp://ftp.gnustep.org/pub/gnustep/contrib/gdb-objc-patch.tar.gz
>>>
>>
>>Jim, could you take a quick look at this small change?
>>[Adam, the comment needs a period followed by two spaces.]
>>
>>
>>
>>> * elfread.c (elf_symtab_read): Skip ObjC symbols.
>>
>>>Index: gdb/elfread.c
>>>===================================================================
>>>RCS file: /cvs/src/src/gdb/elfread.c,v
>>>retrieving revision 1.23
>>>diff -u -p -r1.23 elfread.c
>>>--- gdb/elfread.c 24 Jul 2002 23:51:35 -0000 1.23
>>>+++ gdb/elfread.c 17 Sep 2002 19:29:59 -0000
>>>@@ -349,7 +349,12 @@ elf_symtab_read (struct objfile *objfile
>>> }
>>> else if (sym->section->flags & SEC_CODE)
>>> {
>>>- if (sym->flags & BSF_GLOBAL)
>>>+ if (sym->name[0] == '.' && (strncmp (sym->name + 1, "objc_", 4) == 0))
>>>+ {
>>>+ /* Looks like an Objective-C special symbol */
>>>+ continue;
>>>+ }
>>>+ else if (sym->flags & BSF_GLOBAL)
>>> {
>>> ms_type = mst_text;
>>> }
>>

--
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.