This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] call cp_lookup_symbol_namespace recursively to search symbols in C++ base classes
- From: "Liu, Lei" <lei dot liu2 at windriver dot com>
- To: Tom Tromey <tromey at redhat dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Wed, 03 Nov 2010 09:41:31 +0800
- Subject: Re: [PATCH] call cp_lookup_symbol_namespace recursively to search symbols in C++ base classes
- References: <4CCF89F0.5090100@windriver.com> <m3vd4fh5gk.fsf@fleche.redhat.com>
On 2010å11æ03æ 03:48, Tom Tromey wrote:
">" == Liu, Lei<lei.liu2@windriver.com> writes:
This patch is trying to fix a bug in gdb. The problem is found in
following C++ test case.
Thanks.
This looks pretty reasonable overall. In order for it to go in, we
would need a couple things:
* Copyright assignment forms filed with the FSF. If you don't have this
already, one of us can get you started.
I don't have this yet. We can get start to do it.
* A test case -- the one you have is fine, it just needs to be in the
form used by our test suite.
Right. I'll reform it.
2010-11-02 Lei Liu<lei.liu2@windriver.com>
* cp-namespace.c (cp_lookup_symbol_namespace): Recursively call
itself to search C++ base classes.
It isn't 100% clear to me that cp_lookup_symbol_namespace is the right
function. That file is kind of spaghetti-ish right now :(
It seems to me that all the C++ specific symbol looking up code are located
in this file. I don't know where else I can put my code in.
+ scope_sym = lookup_symbol (scope, NULL, VAR_DOMAIN, NULL);
+ if (scope_sym == NULL)
+ return NULL;
+
+ scope_type = SYMBOL_TYPE(scope_sym);
+ if (scope_type == NULL)
+ return NULL;
I think lookup_typename is better here.
Well, I tried that first, but we must have a GDBARCH passed to it. I'm not
sure where can I get this.
+ if (TYPE_CODE (scope_type) == TYPE_CODE_STRUCT)
I think you should call check_typedef on scope_type before this check.
OK. I missed that.
thanks,
Tom
Thanks.
Lei