ibuclaw / gdb

Fork of GDB with D-related fixes.
GNU General Public License v2.0
16 stars 4 forks source link

tweak D demangling to be more in lline with core.demangle #6

Open rainers opened 7 years ago

rainers commented 7 years ago
rainers commented 7 years ago

Wouldn't you want attributes to be postfixed, and not prefixed?

Yes, that would probably be nicer, but prefixed is compatible with core.demangle.

Also, I've just noticed that my addition of options should probably strip off DMGL_TYPES in the recursive calls. Otherwise you'll get int int some.symbol(some.other.symbol)

True, the return/variable types should be stripped in symbol references.

ibuclaw commented 7 years ago

Yes, that would probably be nicer, but prefixed is compatible with core.demangle.

But doesn't make sense for symbol search in say gdb. Though I can have another look at what flags they use, as well as other objdump/nm utilities. But I'd prefer append over prepend in the output any day.

rainers commented 7 years ago

But doesn't make sense for symbol search in say gdb.

I guess it doesn't make much sense to search the "verbose" symbols to begin with.

Though I can have another look at what flags they use, as well as other objdump/nm utilities. But I'd prefer append over prepend in the output any day.

Unfortuately, even the compiler prefers to print the attributes first:

void fn() nothrow;
pragma(msg, typeof(fn).stringof); // nothrow void()
pragma(msg, typeof(&fn).stringof); // void function() nothrow

Maybe we can add a "private" flag to the options? Nevertheless I'll change the default to append...

BTW: from demangle.h it seems that you should use DMGL_RET_DROP instead of DMGL_TYPES to drop the return type.

rainers commented 7 years ago

Updated to append the attributes, but the calling convention still has to be prepended.

ibuclaw commented 4 years ago

I rebased this on top of dlang, just to see how it looks like with the new info struct.