Lines Matching refs:Phdr

1802 std::pair<const typename ELFT::Phdr *, const typename ELFT::Shdr *>
1807 for (const Elf_Phdr &Phdr : *PhdrsOrErr) { in findDynamic()
1808 if (Phdr.p_type != ELF::PT_DYNAMIC) in findDynamic()
1810 DynamicPhdr = &Phdr; in findDynamic()
4574 static bool checkTLSSections(const typename ELFT::Phdr &Phdr, in checkTLSSections() argument
4579 return Phdr.p_type == ELF::PT_TLS; in checkTLSSections()
4583 return (Phdr.p_type == ELF::PT_TLS) || (Phdr.p_type == ELF::PT_LOAD) || in checkTLSSections()
4584 (Phdr.p_type == ELF::PT_GNU_RELRO); in checkTLSSections()
4588 return Phdr.p_type != ELF::PT_TLS; in checkTLSSections()
4592 static bool checkPTDynamic(const typename ELFT::Phdr &Phdr, in checkPTDynamic() argument
4594 if (Phdr.p_type != ELF::PT_DYNAMIC || Phdr.p_memsz == 0 || Sec.sh_size != 0) in checkPTDynamic()
4601 (Sec.sh_offset > Phdr.p_offset && in checkPTDynamic()
4602 Sec.sh_offset < Phdr.p_offset + Phdr.p_filesz); in checkPTDynamic()
4604 (Sec.sh_addr > Phdr.p_vaddr && Sec.sh_addr < Phdr.p_memsz); in checkPTDynamic()
4657 for (const Elf_Phdr &Phdr : *PhdrsOrErr) { in printProgramHeaders()
4658 Fields[0].Str = getGNUPtType(Header.e_machine, Phdr.p_type); in printProgramHeaders()
4659 Fields[1].Str = to_string(format_hex(Phdr.p_offset, 8)); in printProgramHeaders()
4660 Fields[2].Str = to_string(format_hex(Phdr.p_vaddr, Width)); in printProgramHeaders()
4661 Fields[3].Str = to_string(format_hex(Phdr.p_paddr, Width)); in printProgramHeaders()
4662 Fields[4].Str = to_string(format_hex(Phdr.p_filesz, SizeWidth)); in printProgramHeaders()
4663 Fields[5].Str = to_string(format_hex(Phdr.p_memsz, SizeWidth)); in printProgramHeaders()
4664 Fields[6].Str = printPhdrFlags(Phdr.p_flags); in printProgramHeaders()
4665 Fields[7].Str = to_string(format_hex(Phdr.p_align, 1)); in printProgramHeaders()
4668 if (Phdr.p_type == ELF::PT_INTERP) { in printProgramHeaders()
4673 Twine::utohexstr(Phdr.p_offset) + ": " + Msg); in printProgramHeaders()
4676 if (Phdr.p_offset >= this->Obj.getBufSize()) { in printProgramHeaders()
4683 reinterpret_cast<const char *>(this->Obj.base()) + Phdr.p_offset; in printProgramHeaders()
4684 size_t MaxSize = this->Obj.getBufSize() - Phdr.p_offset; in printProgramHeaders()
4711 for (const Elf_Phdr &Phdr : *PhdrsOrErr) { in printSectionMapping()
4722 if (isSectionInSegment<ELFT>(Phdr, Sec) && in printSectionMapping()
4723 checkTLSSections<ELFT>(Phdr, Sec) && in printSectionMapping()
4724 checkPTDynamic<ELFT>(Phdr, Sec)) { in printSectionMapping()
5983 Expected<ArrayRef<typename ELFT::Phdr>> PhdrsOrErr = Obj.program_headers(); in processNotesHelper()
5992 const typename ELFT::Phdr &P = (*PhdrsOrErr)[I]; in processNotesHelper()
7318 for (const Elf_Phdr &Phdr : *PhdrsOrErr) { in printProgramHeaders()
7321 segmentTypeToString(this->Obj.getHeader().e_machine, Phdr.p_type); in printProgramHeaders()
7323 W.printHex("Type", Type.empty() ? "Unknown" : Type, Phdr.p_type); in printProgramHeaders()
7324 W.printHex("Offset", Phdr.p_offset); in printProgramHeaders()
7325 W.printHex("VirtualAddress", Phdr.p_vaddr); in printProgramHeaders()
7326 W.printHex("PhysicalAddress", Phdr.p_paddr); in printProgramHeaders()
7327 W.printNumber("FileSize", Phdr.p_filesz); in printProgramHeaders()
7328 W.printNumber("MemSize", Phdr.p_memsz); in printProgramHeaders()
7329 W.printFlags("Flags", Phdr.p_flags, ArrayRef(ElfSegmentFlags)); in printProgramHeaders()
7330 W.printNumber("Alignment", Phdr.p_align); in printProgramHeaders()