This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC] 12266 Fallout


On 08/26/2011 11:05 AM, Tom Tromey wrote:

I don't understand why check_typedef would necessarily be involved.
If we changed the canonicalizer to respect this ABI rule about std::
names, then wouldn't std::string be the type's actual name?
And so we wouldn't have to change check_typedef?

Yes, we could make that modification to cp-name-parser.y (and also add something to turn std::basic_{string, ostream, istream, iostream} back into std::{string, ostream, istream, iostream}.


In any case, isn't #3 the best approach?  That is, separating the search
key from the print name, and making the print name closer to what users
expect.  I think we should always be considering what end state we want
to be in, and this seems to be it.

I'm all about the "end result" (which is why I mentioned that gdb should
be printing "calltest(foo)"). But the crux of the matter is still whether we should store "calltest(std::string)" or "calltest(std::basic_string<...>)" in the symbol table. That's all. The later is a "quick fix," but I am attempting (poorly) to also argue that it is the correct way to do it.


If you are looking for a quick fix, but plan to do #3, then #1 is fine
by me.

The two go hand-in-hand IMO. Let me work up a patch and publish it on an archer branch. This will contain both the print name and DMGL_VERBOSE patches in one. Alas, the print name stuff is rather in limbo right now, so it may take me much of the day to fix it up and get this all published. But I will try to get something pushed before you leave EOD.


Keith


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]