protected override void WriteHeader(DwarfWriter writer)
        {
            if (Version < 5)
            {
                // 3. debug_abbrev_offset (section offset)
                var abbrevOffset = Abbreviation.Offset;
                if (writer.EnableRelocation)
                {
                    writer.RecordRelocation(DwarfRelocationTarget.DebugAbbrev, writer.SizeOfUIntEncoding(), abbrevOffset);
                    abbrevOffset = 0;
                }
                writer.WriteUIntFromEncoding(abbrevOffset);

                // 4. address_size (ubyte)
                writer.WriteAddressSize(AddressSize);
            }
            else
            {
                // NOTE: order of address_size/debug_abbrev_offset are different from Dwarf 4

                // 4. address_size (ubyte)
                writer.WriteAddressSize(AddressSize);

                // 5. debug_abbrev_offset (section offset)
                var abbrevOffset = Abbreviation.Offset;
                if (writer.EnableRelocation)
                {
                    writer.RecordRelocation(DwarfRelocationTarget.DebugAbbrev, writer.SizeOfUIntEncoding(), abbrevOffset);
                    abbrevOffset = 0;
                }
                writer.WriteUIntFromEncoding(abbrevOffset);
            }
        }
Exemple #2
0
 protected override void Write(DwarfWriter writer)
 {
     throw new System.NotImplementedException();
 }