| 631 | } |
| 632 | |
| 633 | static void xh_elf_dump_dynamic(xh_elf_t *self) |
| 634 | { |
| 635 | ElfW(Dyn) *dyn = self->dyn; |
| 636 | size_t dyn_cnt = (self->dyn_sz / sizeof(ElfW(Dyn))); |
| 637 | size_t i; |
| 638 | |
| 639 | XH_LOG_DEBUG("Dynamic section contains %zu entries:\n", dyn_cnt); |
| 640 | XH_LOG_DEBUG(" %-"XH_UTIL_FMT_FIXED_S" " \ |
| 641 | "%s\n", |
| 642 | "Tag", |
| 643 | "Val"); |
| 644 | for(i = 0; i < dyn_cnt; i++, dyn++) |
| 645 | { |
| 646 | XH_LOG_DEBUG(" %-"XH_UTIL_FMT_FIXED_X" " \ |
| 647 | "%-"XH_UTIL_FMT_X"\n", |
| 648 | dyn->d_tag, |
| 649 | dyn->d_un.d_val); |
| 650 | } |
| 651 | } |
| 652 | |
| 653 | static void xh_elf_dump_rel(xh_elf_t *self, const char *type, ElfW(Addr) rel_addr, ElfW(Word) rel_sz) |
| 654 | { |