Lines Matching refs:Phdr

1707 std::pair<const typename ELFT::Phdr *, const typename ELFT::Shdr *>
1712 for (const Elf_Phdr &Phdr : *PhdrsOrErr) { in findDynamic()
1713 if (Phdr.p_type != ELF::PT_DYNAMIC) in findDynamic()
1715 DynamicPhdr = &Phdr; in findDynamic()
4186 static bool checkTLSSections(const typename ELFT::Phdr &Phdr, in checkTLSSections() argument
4191 return Phdr.p_type == ELF::PT_TLS; in checkTLSSections()
4195 return (Phdr.p_type == ELF::PT_TLS) || (Phdr.p_type == ELF::PT_LOAD) || in checkTLSSections()
4196 (Phdr.p_type == ELF::PT_GNU_RELRO); in checkTLSSections()
4200 return Phdr.p_type != ELF::PT_TLS; in checkTLSSections()
4204 static bool checkOffsets(const typename ELFT::Phdr &Phdr, in checkOffsets() argument
4210 if (Sec.sh_offset < Phdr.p_offset) in checkOffsets()
4215 return (Sec.sh_offset + 1 <= Phdr.p_offset + Phdr.p_filesz); in checkOffsets()
4216 return Sec.sh_offset + Sec.sh_size <= Phdr.p_offset + Phdr.p_filesz; in checkOffsets()
4222 static bool checkVMA(const typename ELFT::Phdr &Phdr, in checkVMA() argument
4227 if (Sec.sh_addr < Phdr.p_vaddr) in checkVMA()
4233 bool IsTbssInNonTLS = IsTbss && Phdr.p_type != ELF::PT_TLS; in checkVMA()
4236 return Sec.sh_addr + 1 <= Phdr.p_vaddr + Phdr.p_memsz; in checkVMA()
4237 return Sec.sh_addr + Sec.sh_size <= Phdr.p_vaddr + Phdr.p_memsz; in checkVMA()
4241 static bool checkPTDynamic(const typename ELFT::Phdr &Phdr, in checkPTDynamic() argument
4243 if (Phdr.p_type != ELF::PT_DYNAMIC || Phdr.p_memsz == 0 || Sec.sh_size != 0) in checkPTDynamic()
4250 (Sec.sh_offset > Phdr.p_offset && in checkPTDynamic()
4251 Sec.sh_offset < Phdr.p_offset + Phdr.p_filesz); in checkPTDynamic()
4253 (Sec.sh_addr > Phdr.p_vaddr && Sec.sh_addr < Phdr.p_memsz); in checkPTDynamic()
4297 for (const Elf_Phdr &Phdr : *PhdrsOrErr) { in printProgramHeaders()
4298 Fields[0].Str = getGNUPtType(Header.e_machine, Phdr.p_type); in printProgramHeaders()
4299 Fields[1].Str = to_string(format_hex(Phdr.p_offset, 8)); in printProgramHeaders()
4300 Fields[2].Str = to_string(format_hex(Phdr.p_vaddr, Width)); in printProgramHeaders()
4301 Fields[3].Str = to_string(format_hex(Phdr.p_paddr, Width)); in printProgramHeaders()
4302 Fields[4].Str = to_string(format_hex(Phdr.p_filesz, SizeWidth)); in printProgramHeaders()
4303 Fields[5].Str = to_string(format_hex(Phdr.p_memsz, SizeWidth)); in printProgramHeaders()
4304 Fields[6].Str = printPhdrFlags(Phdr.p_flags); in printProgramHeaders()
4305 Fields[7].Str = to_string(format_hex(Phdr.p_align, 1)); in printProgramHeaders()
4308 if (Phdr.p_type == ELF::PT_INTERP) { in printProgramHeaders()
4313 Twine::utohexstr(Phdr.p_offset) + ": " + Msg); in printProgramHeaders()
4316 if (Phdr.p_offset >= this->Obj.getBufSize()) { in printProgramHeaders()
4323 reinterpret_cast<const char *>(this->Obj.base()) + Phdr.p_offset; in printProgramHeaders()
4324 size_t MaxSize = this->Obj.getBufSize() - Phdr.p_offset; in printProgramHeaders()
4351 for (const Elf_Phdr &Phdr : *PhdrsOrErr) { in printSectionMapping()
4362 if (checkTLSSections<ELFT>(Phdr, Sec) && checkOffsets<ELFT>(Phdr, Sec) && in printSectionMapping()
4363 checkVMA<ELFT>(Phdr, Sec) && checkPTDynamic<ELFT>(Phdr, Sec)) { in printSectionMapping()
5664 Expected<ArrayRef<typename ELFT::Phdr>> PhdrsOrErr = Obj.program_headers(); in printNotesHelper()
5673 const typename ELFT::Phdr &P = (*PhdrsOrErr)[I]; in printNotesHelper()
6846 for (const Elf_Phdr &Phdr : *PhdrsOrErr) { in printProgramHeaders()
6849 segmentTypeToString(this->Obj.getHeader().e_machine, Phdr.p_type); in printProgramHeaders()
6851 W.printHex("Type", Type.empty() ? "Unknown" : Type, Phdr.p_type); in printProgramHeaders()
6852 W.printHex("Offset", Phdr.p_offset); in printProgramHeaders()
6853 W.printHex("VirtualAddress", Phdr.p_vaddr); in printProgramHeaders()
6854 W.printHex("PhysicalAddress", Phdr.p_paddr); in printProgramHeaders()
6855 W.printNumber("FileSize", Phdr.p_filesz); in printProgramHeaders()
6856 W.printNumber("MemSize", Phdr.p_memsz); in printProgramHeaders()
6857 W.printFlags("Flags", Phdr.p_flags, makeArrayRef(ElfSegmentFlags)); in printProgramHeaders()
6858 W.printNumber("Alignment", Phdr.p_align); in printProgramHeaders()