61 #define __STDC_FORMAT_MACROS 76 Function(
void *_address,
string *_comment,
bool _isvisible,
int _call_count);
77 void AppendComment(
const string *c);
120 FunctionSet::iterator it;
161 (((
unsigned long) nextf->
address) -
162 ((
unsigned long) f->
address)) < 16) {
176 sprintf(buffer,
"stripped_%p", f->
address);
213 isvisible, call_count);
229 #ifdef DEBUG_ENTRIES_IN_RANGE 230 printf(
"function entries for range [%p, %p]\n", start, end);
234 void *
addr = (*it).first;
235 if (addr > end)
return;
236 #ifdef DEBUG_ENTRIES_IN_RANGE 237 printf(
" %p\n", addr);
239 result.push_back(addr);
279 printf(
" 0x%" PRIxPTR
" /* %s */", (uintptr_t) addr, comment);
284 printf(
"0x%" PRIxPTR
" %s\n", (uintptr_t) addr, comment);
307 std::pair<void *const, void *> *interval = cbranges.
contains(addr);
308 if (interval !=
NULL && (addr > interval->first))
return 1;
320 cbranges.
insert(start,end);
330 isvisible = _isvisible;
331 call_count = _call_count;
338 *comment = *comment +
", " + *c;
345 return this->address < right->
address;
Function(void *_address, string *_comment, bool _isvisible, int _call_count)
static void dump_function_entry(void *addr, const char *comment)
set< void * > ExcludedFunctionSet
long offset_for_fn(void *addr)
static void new_function_entry(void *addr, string *comment, bool isvisible, int call_count)
void dump_reachable_functions()
static ExcludedFunctionSet excluded_function_entries
bool query_function_entry(void *addr)
static long num_entries_total
int is_possible_fn(void *addr)
static intervals cbranges
int operator<(Function *right)
void add_stripped_function_entry(void *addr, int call_count)
void AppendComment(const string *c)
static FunctionSet function_entries
long num_function_entries(void)
map< void *, Function * > FunctionSet
void add_function_entry(void *addr, const string *comment, bool isvisible, int call_count)
void syserv_add_addr(void *addr, long func_entry_map_size)
void insert(void *start, void *end)
void entries_in_range(void *start, void *end, vector< void *> &result)
void exclude_function_entry(void *addr)
int inside_protected_range(void *addr)
bool range_contains_control_flow(void *vstart, void *vend)
void function_entries_reinit(void)
bool operator<(const VMAInterval &x, const VMAInterval &y)
void add_protected_range(void *start, void *end)
bool contains_function_entry(void *address)
std::pair< void *const, void * > * contains(void *i)