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 (int i = 0; i < entries; ++i) { uint offset; if (!rdr.TryReadUInt32(out offset)) { return; } uint info; if (!rdr.TryReadUInt32(out info)) { return; } int addend; if (!rdr.TryReadInt32(out addend)) { return; } uint sym = info >> 8; string symStr = loader.GetSymbol(symtab, (int)sym); formatter.Write("{0:X8} {1,3} {2:X8} {3:X8} {4}", offset, info & 0xFF, sym, addend, symStr); formatter.WriteLine(); } }