In gcTrace.hpp the type of GCId is unit, but in trace.xml the type is ULONG.
The type should be ulong all over.
I think we should be using UINT in the trace.xml file. No reason to change the GCId to a long since there are other limitations (CollectedHeap::_total_collections) that are unsigned int. So, unless we extend those also to long I think we will mostly just be wasting the extra 32 bits in the tracing.
A similar issue is found in the compiler events where the Compiler ID has the type INTEGER (which is signed) but should really be UINT.
This bug will be used to fix both these issues.