Lines Matching defs:elf
80 /* argp key value for --elf-section, non-ascii. */
97 { "elf-section", ELF_INPUT_SECTION, "SECTION", OPTION_ARG_OPTIONAL,
340 static Elf_Data *get_dynscn_strtab (Elf *elf, GElf_Phdr *phdr);
341 static void get_dynscn_addrs (Elf *elf, GElf_Phdr *phdr, GElf_Addr addrs[i_max]);
342 static void find_offsets (Elf *elf, GElf_Addr main_bias, size_t n,
644 Elf *elf = elf_begin (fd, ELF_C_READ_MMAP, NULL);
645 if (elf == NULL)
652 if (elf_getshdrnum (elf, &shnums) < 0)
657 elf_end (elf);
661 if (elf_getshdrstrndx (elf, &shstrndx) < 0)
669 Elf_Scn *scn = elf_getscn (elf, cnt);
686 const char *sname = elf_strptr (elf, shstrndx, shdr->sh_name);
727 if (elf_end (elf) != 0)
745 if (elf_end (elf) != 0)
756 Elf *elf = elf_begin (fd, ELF_C_READ_MMAP, NULL);
757 if (elf == NULL)
762 if (elf_kind (elf) == ELF_K_AR)
766 dump_archive_index (elf, fname);
774 if (elf_end (elf) != 0)
840 elf file but is only missing the alternate debug link. If dwbias
842 for the main elf. We don't care in that case. */
941 elf_contains_chdrs (Elf *elf)
944 while ((scn = elf_nextscn (elf, scn)) != NULL)
959 Elf *elf = dwfl_module_getelf (dwflmod, &dwflbias);
962 GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem);
970 Ebl *ebl = ebl_openbackend (elf);
979 if (unlikely (elf_getshdrnum (ebl->elf, &shnum) < 0))
984 if (unlikely (elf_getphdrnum (ebl->elf, &phnum) < 0))
998 || elf_contains_chdrs (ebl->elf)));
1005 off_t aroff = elf_getaroff (elf);
1163 GElf_Shdr *shdr = gelf_getshdr (elf_getscn (ebl->elf, 0), &shdr_mem);
1180 GElf_Shdr *shdr = gelf_getshdr (elf_getscn (ebl->elf, 0), &shdr_mem);
1192 GElf_Shdr *shdr = gelf_getshdr (elf_getscn (ebl->elf, 0), &shdr_mem);
1252 if (unlikely (elf_getshdrnum (ebl->elf, §ions) < 0))
1263 if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
1284 Elf_Scn *scn = elf_getscn (ebl->elf, cnt);
1331 sname = elf_strptr (ebl->elf, shstrndx, shdr->sh_name) ?: "<corrupt>";
1402 GElf_Phdr *phdr = gelf_getphdr (ebl->elf, cnt, &mem);
1436 Elf_Scn *scn = gelf_offscn (ebl->elf, phdr->p_offset);
1441 char *filedata = elf_rawfile (ebl->elf, &maxsize);
1460 if (unlikely (elf_getshdrnum (ebl->elf, §ions) < 0))
1470 if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
1481 GElf_Phdr *phdr = gelf_getphdr (ebl->elf, cnt, &phdr_mem);
1492 Elf_Scn *scn = elf_getscn (ebl->elf, inner);
1547 phdr2 = gelf_getphdr (ebl->elf, cnt2, &phdr2_mem);
1572 elf_strptr (ebl->elf, shstrndx, shdr->sh_name));
1596 if (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0)
1598 return elf_strptr (ebl->elf, shstrndx, shdr->sh_name) ?: "???";
1608 Elf_Scn *symscn = elf_getscn (ebl->elf, shdr->sh_link);
1619 if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
1638 elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
1640 : elf_strptr (ebl->elf, symshdr->sh_link, sym->st_name))
1647 GElf_Shdr *grpshdr = gelf_getshdr (elf_getscn (ebl->elf, grpref[cnt]),
1654 && (str = elf_strptr (ebl->elf, shstrndx, grpshdr->sh_name))
1666 while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
1822 int class = gelf_getclass (ebl->elf);
1832 data = elf_getdata_rawchunk(ebl->elf, phdr->p_offset,
1846 if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
1849 glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), &glink_mem);
1863 elf_strptr (ebl->elf, shstrndx, glink->sh_name));
1884 strtab_data = get_dynscn_strtab(ebl->elf, phdr);
1907 name = elf_strptr (ebl->elf, shdr->sh_link, dyn->d_un.d_val);
2004 GElf_Phdr *phdr = gelf_getphdr (ebl->elf, i, &phdr_mem);
2008 Elf_Scn *scn = gelf_offscn (ebl->elf, phdr->p_offset);
2027 while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
2048 int class = gelf_getclass (ebl->elf);
2049 size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_REL, 1, EV_CURRENT);
2058 Elf_Scn *symscn = elf_getscn (ebl->elf, shdr->sh_link);
2065 GElf_Shdr *destshdr = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_info),
2079 xndxdata = elf_getdata (elf_getscn (ebl->elf, xndxscnidx), NULL);
2083 if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
2093 elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
2095 elf_strptr (ebl->elf, shstrndx, destshdr->sh_name),
2108 elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
2147 GElf_Phdr *phdr = gelf_getphdr (ebl->elf, inner,
2169 elf_strptr (ebl->elf, shstrndx, destshdr->sh_name));
2193 elf_strptr (ebl->elf, symshdr->sh_link, sym->st_name));
2199 secshdr = gelf_getshdr (elf_getscn (ebl->elf,
2226 elf_strptr (ebl->elf, shstrndx, secshdr->sh_name));
2237 int class = gelf_getclass (ebl->elf);
2238 size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_RELA, 1, EV_CURRENT);
2247 Elf_Scn *symscn = elf_getscn (ebl->elf, shdr->sh_link);
2254 GElf_Shdr *destshdr = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_info),
2268 xndxdata = elf_getdata (elf_getscn (ebl->elf, xndxscnidx), NULL);
2272 if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
2282 elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
2284 elf_strptr (ebl->elf, shstrndx, destshdr->sh_name),
2297 elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
2337 GElf_Phdr *phdr = gelf_getphdr (ebl->elf, inner,
2360 elf_strptr (ebl->elf, shstrndx, destshdr->sh_name));
2386 elf_strptr (ebl->elf, symshdr->sh_link, sym->st_name));
2392 secshdr = gelf_getshdr (elf_getscn (ebl->elf,
2421 elf_strptr (ebl->elf, shstrndx, secshdr->sh_name));
2436 while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
2449 if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
2452 sname = elf_strptr (ebl->elf, shstrndx, shdr->sh_name);
2482 int class = gelf_getclass (ebl->elf);
2493 while ((runscn = elf_nextscn (ebl->elf, runscn)) != NULL)
2525 if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
2529 GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
2544 elf_strptr (ebl->elf, shstrndx, shdr->sh_name), nsyms);
2550 elf_strptr (ebl->elf, shstrndx, glink->sh_name));
2588 elf_strptr (ebl->elf, shdr->sh_link, sym->st_name));
2605 gelf_getshdr (elf_getscn (ebl->elf, xndx), &symshdr_mem);
2662 elf_strptr (ebl->elf, verneed_stridx,
2707 elf_strptr (ebl->elf, verdef_stridx,
2727 while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
2781 int class = gelf_getclass (ebl->elf);
2790 if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
2794 GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
2806 elf_strptr (ebl->elf, shstrndx, shdr->sh_name), shdr->sh_info,
2810 elf_strptr (ebl->elf, shstrndx, glink->sh_name));
2823 elf_strptr (ebl->elf, shdr->sh_link, need->vn_file),
2836 elf_strptr (ebl->elf, shdr->sh_link, aux->vna_name),
2865 if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
2869 GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
2875 int class = gelf_getclass (ebl->elf);
2882 elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
2887 elf_strptr (ebl->elf, shstrndx, glink->sh_name));
2910 elf_strptr (ebl->elf, shdr->sh_link, aux->vda_name));
2921 elf_strptr (ebl->elf, shdr->sh_link, aux->vda_name));
2940 int class = gelf_getclass (ebl->elf);
2951 if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
2960 while ((verscn = elf_nextscn (ebl->elf, verscn)) != NULL)
3110 = elf_strptr (ebl->elf, defshdr->sh_link, aux->vda_name);
3148 = elf_strptr (ebl->elf, needshdr->sh_link, aux->vna_name);
3150 = elf_strptr (ebl->elf, needshdr->sh_link, need->vn_file);
3171 GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link),
3173 size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_HALF, 1, EV_CURRENT);
3185 elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
3190 elf_strptr (ebl->elf, shstrndx, glink->sh_name));
3244 GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf,
3261 elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
3263 gelf_getclass (ebl->elf) == ELFCLASS32 ? 10 : 18,
3267 elf_strptr (ebl->elf, shstrndx, glink->sh_name));
3469 if (gelf_getclass (ebl->elf) == ELFCLASS64)
3547 if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
3551 while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
3595 if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
3598 while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
3605 size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_LIB, 1, EV_CURRENT);
3613 elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
3637 cnt, elf_strptr (ebl->elf, shdr->sh_link, lib->l_name),
3664 if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
3667 while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
3685 elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
4878 find_offsets(Elf *elf, GElf_Addr main_bias, size_t n,
4884 GElf_Phdr *phdr = gelf_getphdr(elf, i, &phdr_mem);
4904 get_dynscn_addrs(Elf *elf, GElf_Phdr *phdr, GElf_Addr addrs[i_max])
4907 elf, phdr->p_offset, phdr->p_filesz, ELF_T_DYN);
4956 get_dynscn_strtab(Elf *elf, GElf_Phdr *phdr)
4961 get_dynscn_addrs(elf, phdr, addrs);
4962 find_offsets(elf, 0, i_max, addrs, offs);
4964 elf, offs[i_strtab], addrs[i_strsz], ELF_T_BYTE);
5568 glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), &glink_mem);
6335 encoding = gelf_getclass (dbg->elf) == ELFCLASS32
6779 (void) elf_getshdrstrndx (ebl->elf, &shstrndx);
6780 const char *scnname = elf_strptr (ebl->elf, shstrndx, shdr->sh_name);
8203 = elf_getident (ebl->elf, NULL)[EI_CLASS] == ELFCLASS32 ? 4 : 8;
8620 = elf_getident (ebl->elf, NULL)[EI_CLASS] == ELFCLASS32 ? 4 : 8;
11433 .elf = ebl->elf,
11581 if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
11593 while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
11600 const char *name = elf_strptr (ebl->elf, shstrndx,
11623 while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
11675 const char *name = elf_strptr (ebl->elf, shstrndx,
12662 unsigned int colno = handle_core_items (ebl->elf, desc,
12668 colno = handle_core_registers (ebl, ebl->elf, desc + regs_offset,
12726 handle_auxv_note (ebl, ebl->elf, nhdr.n_descsz,
12732 handle_siginfo_note (ebl->elf, nhdr.n_descsz,
12737 handle_file_note (ebl->elf, nhdr.n_descsz,
12771 if (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0)
12775 while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
12786 char *sname = elf_strptr (ebl->elf, shstrndx, shdr->sh_name);
12794 elf_strptr (ebl->elf, shstrndx, shdr->sh_name),
12808 GElf_Phdr *phdr = gelf_getphdr (ebl->elf, cnt, &mem);
12819 elf_getdata_rawchunk (ebl->elf,
12975 for_each_section_argument (Elf *elf, const struct section_argument *list,
12981 if (elf_getshdrstrndx (elf, &shstrndx) < 0)
12994 scn = elf_getscn (elf, shndx);
13004 name = elf_strptr (elf, shstrndx, shdr_mem.sh_name);
13012 while ((scn = elf_nextscn (elf, scn)) != NULL)
13016 name = elf_strptr (elf, shstrndx, shdr_mem.sh_name);
13035 for_each_section_argument (ebl->elf, dump_data_sections, &dump_data_section);
13041 for_each_section_argument (ebl->elf, string_sections, &print_string_section);
13049 if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0))
13056 while ((scn = elf_nextscn (ebl->elf, scn)) != NULL)
13065 name = elf_strptr (ebl->elf, shstrndx, shdr_mem.sh_name);
13074 dump_archive_index (Elf *elf, const char *fname)
13077 const Elf_Arsym *arsym = elf_getarsym (elf, &narsym);
13100 if (unlikely (elf_rand (elf, as_off) == 0)
13101 || unlikely ((subelf = elf_begin (-1, ELF_C_READ_MMAP, elf))