Hi Stephan,
I have investigated your issue.
Since you built your code with -symdebug:coff, the debug info are encoded in the COFF symbol table with auxiliary entries.
The COFF symbol entry looks like:
<10000> "_AsLongLongWord" (defined in section ".ebss:part1" (90))
Value: 0x00008004 Kind: defined
Binding: global Type: object
Storage Class: C_EXT Basic Type: unsigned long
Size: 64 bits
The entry tells us that the variable is of unsigned long type.
The reason that your variables had types of "unsigned long" instead of "unsigned long long" is that COFF does not have a tag to represent a long long type.
The bit size of 64 is stored in an auxiliary entry.
However, we ignore the info and use the size of the unsigned long as the size of the variable because the COFF spec does not indicate any auxiliary entries for C_EXT.
I suppose that this is a debugger bug for not processing the bit size info.
However, we are deprecating COFF debug info support in favour of DWARF.
I do not think we will fix this bug soon.
I would advise that you should switch to dwarf debug info.
Regards,
Raymond