private MachSymtab ReadSymtab() { IsAtLeastOneSymtabLoadCommand.CheckThrowing(); IsAtMostOneSymtabLoadCommand.CheckThrowing(); ulong symtabPosition = 0; ulong dysymtabPosition = 0; foreach (Tuple <MachLoadCommand, ulong> cmdAndPos in _loadCommands.Value) { switch (cmdAndPos.Item1.Command) { case LoadCommandType.Symtab: symtabPosition = cmdAndPos.Item2; break; case LoadCommandType.DySymtab: dysymtabPosition = cmdAndPos.Item2; break; } } if (symtabPosition == 0 || dysymtabPosition == 0) { return(null); } return(new MachSymtab(DataSourceReader, symtabPosition, dysymtabPosition, PhysicalAddressReader)); }
private MachSymtab ReadSymtab() { IsAtLeastOneSymtabLoadCommand.CheckThrowing(); IsAtMostOneSymtabLoadCommand.CheckThrowing(); foreach (Tuple <MachLoadCommand, ulong> cmdAndPos in _loadCommands.Value) { if (cmdAndPos.Item1.Command != LoadCommandType.Symtab) { continue; } return(new MachSymtab(DataSourceReader, cmdAndPos.Item2, PhysicalAddressReader)); } return(null); }