Debug information for enumerator values
Iain Buclaw
ibuclaw at ubuntu.com
Tue Sep 17 02:52:35 PDT 2013
I've implemented this in gdc.
https://github.com/D-Programming-GDC/GDC/commit/021dda8feaba282fec60600729ba8abc2c64cf81
---
enum enum_byte : byte { kE1, kE2, kE3 }
enum enum_ubyte : ubyte { kE1, kE2, kE3 }
enum enum_short : short { kE1, kE2, kE3 }
enum enum_ushort : ushort { kE1, kE2, kE3 }
enum enum_int : int { kE1, kE2, kE3 }
enum enum_uint : uint { kE1, kE2, kE3 }
enum enum_long : long { kE1, kE2, kE3 }
enum enum_ulong : ulong { kE1, kE2, kE3 }
void main()
{
enum_byte var_byte;
enum_ubyte var_ubyte;
enum_short var_short;
enum_ushort var_ushort;
enum_int var_int;
enum_uint var_uint;
enum_long var_long;
enum_ulong var_ulong;
}
---
(gdb) print var_byte
$1 = test.enum_byte.kE1
(gdb) print var_ubyte
$2 = test.enum_ubyte.kE1
(gdb) print var_short
$3 = test.enum_short.kE1
(gdb) print var_ushort
$4 = test.enum_ushort.kE1
(gdb) print var_int
$5 = test.enum_int.kE1
(gdb) print var_uint
$6 = test.enum_uint.kE1
(gdb) print var_long
$7 = test.enum_long.kE1
(gdb) print var_ulong
$8 = test.enum_ulong.kE1
(gdb) print (ulong)var_ulong
$9 = 0
(gdb) print (byte)'test.enum_uint.kE2'
$10 = 1 '\001'
(gdb) print ('test.enum_ulong')3
$11 = (test.enum_ulong.kE2 | test.enum_ulong.kE3)
(gdb) print ('test.enum_ulong')2
$12 = test.enum_ulong.kE3
(gdb) print ('test.enum_ulong')4
$13 = (unknown: 4)
What do you think? Is <module>.<name>.<member> too verbose, or
just right? :-)
Regards
Iain
More information about the Digitalmars-d
mailing list