This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] Select a particular mangling of a demangled symbol in lookup_block_symbol
- From: Elena Zannoni <ezannoni at redhat dot com>
- To: Daniel Jacobowitz <drow at mvista dot com>
- Cc: Elena Zannoni <ezannoni at redhat dot com>, gdb-patches at sources dot redhat dot com
- Date: Fri, 22 Mar 2002 15:09:54 -0500
- Subject: Re: [RFA] Select a particular mangling of a demangled symbol in lookup_block_symbol
- References: <20020214185503.A28610@nevyn.them.org><15511.47485.557533.258275@localhost.redhat.com><20020322135219.B24693@nevyn.them.org>
Daniel Jacobowitz writes:
> On Tue, Mar 19, 2002 at 05:19:41PM -0500, Elena Zannoni wrote:
> > OK, approved. But I have my usual couple of questions:
>
> Committed to trunk only; I'll move it to the branch in a week or so if
> it doesn't break anything.
>
> > Was the corresponding testsuite patch sorted out? Looks like it
> > wasn't. Does this patch have any effect on the testsuite results w/o
>
> Nope.
>
> > the testsuite patch?
>
> I don't believe so.
>
> > In the above, should it be mangled_name = name or mangled_name =
> > modified_name? It would seem more uniform with the rest of the
> > function if we just used modified_name. Unless there is some problem
> > with case sensitivity, in which case, calling cplus_demangle with
> > modified_name seems wrong anyway. I.e. is it guaranteed that
> > case_sensitive_off is NOT in effect? Just out of curiosity What
> > would happen if the user sets the case sensitivity off?
> > Wouldn't it change _ZN3fooC1ERS_ to _zn3fooc1ers_ ? (of course the user
> > can always do a lot of things to screw himself up)
>
> As far as I'm concerned - if the user sets case sensitivity off while
> debugging C++, they deserve what they get. Mangling is not
> case-insensitive. In fact, in v3, cplus_demangle is absolutely
> guaranteed to fail (_z is not a legal prefix for a mangled name).
> Perhaps it would be better to call cplus_demangle with the original
> name.
I think that just to be safe we should do that, yes.
>
> > I guess what I am really asking is when is lookup_symbol called with a
> > mangled name. I tried to do "break foo::foo", and I never saw it called
> > with a mangled name.
>
> find_methods will do it, in two places, at least if you're using stabs:
> sym_arr[i1] = lookup_symbol (phys_name,
> NULL, VAR_NAMESPACE,
> (int *) NULL,
> (struct symtab **) NULL);
>
Yes, I notice a difference stabs vs. dwarf2.
> It shouldn't do this, of course, but that requires a lot of work that I
> haven't gotten to yet.
>
Elena
> --
> Daniel Jacobowitz Carnegie Mellon University
> MontaVista Software Debian GNU/Linux Developer