On 24 Jun 2013, at 15:07, martin wrote:

anyone knows *all* the different ways that function names may be mangled (for the linker)?

Probably only "svn blame/praise" combined with checking out old versions of compiler/symdef.pas does.

I asked because this is sometime the only info returned by gdb (if there is no debug info). And it could be useful to parse it.

It  used to be Unit_class_$__function$...
 SYSTEM_TOBJECT_$__DISPATCH$formal

but I also saw
 CLASSES$_$TREADER_$__$$_READINTEGER$$LONGINT

makes me wonder if in some cases there may be more info between all the $$ ?

No. That's a change that was made because e.g. unit1._class1 and unit1_.class1 resulted in the same mangled name. "$" is not a valid character in Pascal identifiers and hence was added as a separator in the mangled name.

And also will need the format for plain functions (not methods)

You should not try to parse the mangled name, because FPC's name mangling is a one-way process at this time (and always has been until now). If the mangled name's length gets close to 250 characters, the end will be replaced by a CRC of the name (possibly multiple times).


Jonas
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to