#include <stdio.h>
#include <dlfcn.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <stdint.h>
#include <stdbool.h>
#include <sys/param.h>
#include <sys/types.h>
#include <unistd.h>
#include <include/hpctoolkit-config.h>
#include <monitor.h>
#include "fnbounds_interface.h"
#include "fnbounds_file_header.h"
#include "client.h"
#include "dylib.h"
#include <hpcrun/main.h>
#include <hpcrun_dlfns.h>
#include <hpcrun_stats.h>
#include <disabled.h>
#include <loadmap.h>
#include <env.h>
#include <epoch.h>
#include <sample_event.h>
#include <thread_data.h>
#include <unwind/common/uw_recipe_map.h>
#include <messages/messages.h>
#include <lib/prof-lean/spinlock.h>
#include "data_tree.h"
Go to the source code of this file.
|
static load_module_t * | fnbounds_get_loadModule (void *ip) |
|
static dso_info_t * | fnbounds_compute (const char *filename, void *start, void *end) |
|
static void | fnbounds_map_executable () |
|
static bool | fnbounds_is_datacentric_enabled () |
|
int | fnbounds_init () |
|
bool | fnbounds_enclosing_addr (void *ip, void **start, void **end, load_module_t **lm) |
|
void | fnbounds_map_open_dsos () |
|
static void | insert_var_table (void **var_table, unsigned long num) |
|
static void | fnbounds_run_var_analysis (dso_info_t *dso) |
|
static void | fnbounds_find_exec_bounds_proc_maps (char *exename, void **start, void **end) |
|
dso_info_t * | fnbounds_dso_exec (void) |
|
bool | fnbounds_ensure_mapped_dso (const char *module_name, void *start, void *end) |
|
void | fnbounds_unmap_closed_dsos () |
|
void | fnbounds_fini () |
|
void | fnbounds_release_lock (void) |
|
fnbounds_table_t | fnbounds_fetch_executable_table (void) |
|
◆ FNBOUNDS_LOCK
Value:do { \
} while (0)
static spinlock_t fnbounds_lock
Definition at line 135 of file fnbounds_dynamic.c.
◆ FNBOUNDS_UNLOCK
Value:do { \
} while (0)
static spinlock_t fnbounds_lock
Definition at line 140 of file fnbounds_dynamic.c.
◆ MAPPING_END
#define MAPPING_END |
( |
|
addr, |
|
|
|
length |
|
) |
| ((void *) (((unsigned long) addr) + ((unsigned long) length))) |
◆ PERFORM_RELOCATION
#define PERFORM_RELOCATION |
( |
|
addr, |
|
|
|
offset |
|
) |
| ((void *) (((unsigned long) addr) + ((long) offset))) |
◆ fnbounds_compute()
static dso_info_t * fnbounds_compute |
( |
const char * |
filename, |
|
|
void * |
start, |
|
|
void * |
end |
|
) |
| |
|
static |
◆ fnbounds_dso_exec()
◆ fnbounds_enclosing_addr()
bool fnbounds_enclosing_addr |
( |
void * |
ip, |
|
|
void ** |
start, |
|
|
void ** |
end, |
|
|
load_module_t ** |
lm |
|
) |
| |
◆ fnbounds_ensure_mapped_dso()
bool fnbounds_ensure_mapped_dso |
( |
const char * |
module_name, |
|
|
void * |
start, |
|
|
void * |
end |
|
) |
| |
◆ fnbounds_fetch_executable_table()
◆ fnbounds_find_exec_bounds_proc_maps()
static void fnbounds_find_exec_bounds_proc_maps |
( |
char * |
exename, |
|
|
void ** |
start, |
|
|
void ** |
end |
|
) |
| |
|
static |
◆ fnbounds_fini()
◆ fnbounds_get_loadModule()
◆ fnbounds_init()
◆ fnbounds_is_datacentric_enabled()
static bool fnbounds_is_datacentric_enabled |
( |
| ) |
|
|
static |
◆ fnbounds_map_executable()
static void fnbounds_map_executable |
( |
| ) |
|
|
static |
◆ fnbounds_map_open_dsos()
void fnbounds_map_open_dsos |
( |
| ) |
|
◆ fnbounds_release_lock()
void fnbounds_release_lock |
( |
void |
| ) |
|
◆ fnbounds_run_var_analysis()
static void fnbounds_run_var_analysis |
( |
dso_info_t * |
dso | ) |
|
|
static |
running hpcfnbounds to analyse static variable and its address
Definition at line 287 of file fnbounds_dynamic.c.
◆ fnbounds_unmap_closed_dsos()
void fnbounds_unmap_closed_dsos |
( |
| ) |
|
◆ insert_var_table()
static void insert_var_table |
( |
void ** |
var_table, |
|
|
unsigned long |
num |
|
) |
| |
|
static |
◆ fnbounds_lock