On Monday, 29 November 2021 at 14:48:21 UTC, Luís Ferreira wrote:
On Sun, 2021-11-28 at 21:59 +0000, Iain Buclaw via
Digitalmars-d-learn wrote:
DMD doesn't emit this information. GDB can't work miracles
when the compiler isn't pulling its own weight.
I confirm this is an issue with DMD. I filed a bug in the issue
tracker, in case you want to follow:
https://issues.dlang.org/show_bug.cgi?id=22551
Anyway, DMD exports the symbol, it should work if you do
something like `myPrint(&s)`, but I think there is another
problem on calling it, due to defective calling convention on
both DMD and LDC implementations.
LDC exports the symbol correctly, although.
Indeed, gdb assumes calling convention is same as default for
target (actually its been years since I last looked, but are
calling conventions tags in dwarf? Does gdb know about functions
with thiscall or regparm attributes?)
Another thing on the gdb side, it is currently missing D language
support for overloads, so that the correct function would be
picked when you call e.g std.math.sin(1f).