private IEnumerable <ELFFileTableEntry> ReadFiles() { List <ELFFileTableEntry> files = new List <ELFFileTableEntry>(); ulong readPosition = 0; ELFFileTableHeader header = _noteReader.Read <ELFFileTableHeader>(ref readPosition); //TODO: sanity check the entryCount ELFFileTableEntryPointers[] ptrs = _noteReader.ReadArray <ELFFileTableEntryPointers>(ref readPosition, (uint)(ulong)header.EntryCount); for (int i = 0; i < (int)(ulong)header.EntryCount; i++) { files.Add(new ELFFileTableEntry(_noteReader.Read <string>(ref readPosition), ptrs[i])); } return(files); }
private IEnumerable <ELFFileTableEntry> ReadFiles() { List <ELFFileTableEntry> files = new List <ELFFileTableEntry>(); ulong readPosition = 0; ELFFileTableHeader header = _noteReader.Read <ELFFileTableHeader>(ref readPosition); //TODO: sanity check the entryCount ELFFileTableEntryPointers[] ptrs = _noteReader.ReadArray <ELFFileTableEntryPointers>(ref readPosition, (uint)(ulong)header.EntryCount); for (int i = 0; i < (int)(ulong)header.EntryCount; i++) { string path = _noteReader.Read <string>(ref readPosition); // This substitution is for unloaded modules for which Linux appends " (deleted)" to the module name. path = path.Replace(" (deleted)", ""); files.Add(new ELFFileTableEntry(path, ptrs[i])); } return(files); }