public override void Render(ImageMapSegment segment, Program program, Formatter formatter) { var entries = shdr.sh_size / shdr.sh_entsize; var symtab = (int)shdr.sh_link; var rdr = loader.CreateReader(shdr.sh_offset); for (ulong i = 0; i < entries; ++i) { ulong offset; if (!rdr.TryReadUInt64(out offset)) { return; } ulong info; if (!rdr.TryReadUInt64(out info)) { return; } ulong addend; if (!rdr.TryReadUInt64(out addend)) { return; } ulong sym = info >> 32; string symStr = loader.GetSymbol64(symtab, (int)sym); formatter.Write("{0:X8} {1,3} {2:X8} {3:X16} {4} ({5})", offset, info & 0xFFFFFFFF, sym, addend, symStr, sym); formatter.WriteLine(); } }