blob: 45fd238df0f2477a5069b09c71851e783b62d092 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#ifndef LTRACE_ELF_H
#define LTRACE_ELF_H
#include <gelf.h>
#include <stdlib.h>
#include "ltrace.h"
struct ltelf {
int fd;
Elf *elf;
GElf_Ehdr ehdr;
Elf_Data *dynsym;
size_t dynsym_count;
const char *dynstr;
GElf_Addr plt_addr;
size_t plt_size;
Elf_Data *relplt;
size_t relplt_count;
Elf_Data *symtab;
const char *strtab;
size_t symtab_count;
Elf_Data *opd;
GElf_Addr *opd_addr;
size_t opd_size;
Elf32_Word *hash;
int hash_malloced;
};
extern int library_num;
extern char *library[MAX_LIBRARY];
extern struct library_symbol *read_elf(struct process *);
extern GElf_Addr arch_plt_sym_val(struct ltelf *, size_t, GElf_Rela *);
#endif
|