Accessing vtable, initialiser, etc symbols from debug (gdb)

Iain Buclaw ibuclaw at ubuntu.com
Mon Dec 30 04:24:08 PST 2013


Hi.

I've fixed up the D demangler in gdb with one or two hicks left 
to address.  As the below auto-complete feature presents, the 
full function signatures are now shown.

(gdb) break 'gdbstress.testsig(
gdbstress.testsig(double)
gdbstress.testsig(float)
gdbstress.testsig(real)


Currently, I have been dwelling on the best way to express the 
following symbols:

__ctorMFZ
__dtorMFZ
__postblitMFZ
__initZ
__ClassZ
__vtblZ
__InterfaceZ
__ModuleInfoZ


This is the current mapping I've got in my local branch:

__ctor -> this
__dtor -> ~this
__postblit -> this(this)
__init -> init
__Class -> classinfo
__vtbl -> vtable
__interface -> interfaceinfo
__ModuleInfo -> moduleinfo


However I'm not sure if the names are sufficient, and whether or 
not they should really be prefixed with a double underscore to 
ensure that they don't conflict with user-declared members 
(especially the compiler-generated symbols).


What do you think?

(gdb) print 'gdbstress.testmembers.
gdbstress.testmembers.this(this, int)
gdbstress.testmembers.~this()
gdbstress.testmembers.this(this)
gdbstress.testmembers.init


Regards
Iain.


More information about the Digitalmars-d mailing list