54 #ifndef BASE_SYMBOLIZE_H_
55 #define BASE_SYMBOLIZE_H_
59 #include <glog/logging.h>
63 #if defined(__ELF__) // defined by gcc
64 #if defined(__OpenBSD__)
65 #include <sys/exec_elf.h>
76 #if !defined(SIZEOF_VOID_P)
77 # if defined(__LP64__)
78 # define SIZEOF_VOID_P 8
80 # define SIZEOF_VOID_P 4
86 # if SIZEOF_VOID_P == 4
87 # define ElfW(type) Elf32_##type
88 # elif SIZEOF_VOID_P == 8
89 # define ElfW(type) Elf64_##type
91 # error "Unknown sizeof(void *)"
99 bool GetSectionHeaderByName(
int fd,
const char *
name,
size_t name_len,
102 _END_GOOGLE_NAMESPACE_
119 typedef int (*SymbolizeCallback)(
int fd,
123 uint64_t relocation);
125 void InstallSymbolizeCallback(SymbolizeCallback callback);
137 typedef int (*SymbolizeOpenObjectFileCallback)(uint64_t pc,
138 uint64_t& start_address,
139 uint64_t& base_address,
141 size_t out_file_name_size);
142 void InstallSymbolizeOpenObjectFileCallback(
143 SymbolizeOpenObjectFileCallback callback);
145 _END_GOOGLE_NAMESPACE_
157 _END_GOOGLE_NAMESPACE_
159 #endif // BASE_SYMBOLIZE_H_