[Issue 22311] New: dmd slice length is wrong on DWARF
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Fri Sep 17 20:58:42 UTC 2021
https://issues.dlang.org/show_bug.cgi?id=22311
Issue ID: 22311
Summary: dmd slice length is wrong on DWARF
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Keywords: DebugInfo
Severity: normal
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: maxhaton at gmail.com
Compile this simple code (on 64 bit):
---
int[] x;
static assert(x.length.sizeof == 8);
---
Now run the binary through pahole, we get:
---
struct _Array_int {
uint long length; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
int * ptr; /* 8 8 */
/* size: 16, cachelines: 1, members: 2 */
/* sum members: 12, holes: 1, sum holes: 4 */
/* last cacheline: 16 bytes */
};
---
i.e. the debug info says the slice has a length of 4bytes, this is clearly
wrong.
GDB agrees
---
/* offset | size */ type = struct _Array_int {
/* 0 | 4 */ ulong length;
/* XXX 4-byte hole */
/* 8 | 8 */ int *ptr;
/* total size (bytes): 16 */
}
---
--
More information about the Digitalmars-d-bugs
mailing list