public static void Print(this DwarfAddressRangeTable addressRangeTable, TextWriter writer) { if (writer == null) { throw new ArgumentNullException(nameof(writer)); } writer.WriteLine("Contents of the .debug_aranges section:"); writer.WriteLine(); writer.WriteLine($" Length: {addressRangeTable.HeaderLength}"); writer.WriteLine($" Version: {addressRangeTable.Version}"); writer.WriteLine($" Offset into .debug_info: 0x{addressRangeTable.DebugInfoOffset:x}"); writer.WriteLine($" Pointer Size: {(byte)addressRangeTable.AddressSize}"); writer.WriteLine($" Segment Size: {(byte)addressRangeTable.SegmentSelectorSize}"); writer.WriteLine(); var addressSize = (uint)addressRangeTable.AddressSize; if (addressSize > 4) { writer.WriteLine(" Address Length"); } else { writer.WriteLine(" Address Length"); } var formatStyle = "x" + (addressSize * 2); foreach (var range in addressRangeTable.Ranges) { writer.WriteLine($" {range.Address.ToString(formatStyle)} {range.Length.ToString(formatStyle)}"); } writer.WriteLine($" {((ulong)0).ToString(formatStyle)} {((ulong)0).ToString(formatStyle)}"); }
public DwarfFile() { AbbreviationTable = new DwarfAbbreviationTable(); StringTable = new DwarfStringTable(); LineSection = new DwarfLineSection(); InfoSection = new DwarfInfoSection(); AddressRangeTable = new DwarfAddressRangeTable(); }