Known problem? DMD commandline module order matters for debugging on amd64 linux
Erika via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Jun 12 15:59:40 PDT 2014
I'm not sure if this is a known problem, or if it's something
that I'd need to file a new bug for, but if a program is compiled
with a module besides the one containing main() first on the
commandline, certain debug info is clobbered on 64-bit linux.
An easy testcase, with module afunc.d:
module afunc;
auto inc (size_t var) {
return ++var;
}
and module main.d:
import afunc;
void main() {
size_t counter;
while (counter < size_t.max) {
counter++;
}
}
Compile with the following command:
$ dmd -m64 -g -ofbadsymbols afunc.d main.d
$ gdb ./badsymbols
if you run the program for a moment, then ^C and type 'print
counter', gdb gives the error 'Could not find the frame base for
"D main".'
However, compiling with this command:
$ dmd -m64 -g -ofgoodsymbols main.d afunc.d
using print counter in gdb will actually work.
More information about the Digitalmars-d-learn
mailing list