[Issue 18984] Debugging stack struct's which are returned causes incorrect debuginfo.
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Fri Jun 15 06:53:15 UTC 2018
https://issues.dlang.org/show_bug.cgi?id=18984
Rainer Schuetze <r.sagitario at gmx.de> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |r.sagitario at gmx.de
Component|visuald |dmd
--- Comment #1 from Rainer Schuetze <r.sagitario at gmx.de> ---
To be pedantic, this is an issue with dmd generated debug info. This is a
simpler test case:
struct S
{
int a;
int b;
int c;
}
S foo()
{
S s = S(1, 2, 3);
s.a = 4; // break here, s shows junk, __HID1 has the expected values
return s;
}
void main()
{
S s = foo();
}
Here's the relevant snippet for x64 from the debug info as dumped by cvdump:
(00004C) S_GPROC32: [0000:00000000], Cb: 00000042, Type: 0x1006, rvo.foo
Parent: 00000000, End: 00000000, Next: 00000000
Debug start: 0000000E, Debug end: 0000003B
(00007B) S_REGREL32: rbp+00000010, Type: 0x1007, __HID1
(000090) S_ENDARG
(000094) S_REGREL32: rbp+FFFFFFE0, Type: 0x1004, s
(0000A4) S_END
Happens with OMF aswell, LDC doesn't generate any information for locals.
--
More information about the Digitalmars-d-bugs
mailing list