Merge branch 'inspector' into 'master'
Fixed issue where we are not instrumenting load instructions See merge request cs3214-staff/malloclab!29
This commit is contained in:
commit
69eac96b13
@ -15,24 +15,36 @@ typedef void (*memory_analyzer_list_init_callback_t)(void *);
|
|||||||
/* Create typedef for the list callback */
|
/* Create typedef for the list callback */
|
||||||
typedef void (*memory_analyzer_list_integrity_callback_t)(void);
|
typedef void (*memory_analyzer_list_integrity_callback_t)(void);
|
||||||
|
|
||||||
|
/* Create typedef for memory load detected */
|
||||||
|
typedef void (*memory_load_detected_callback_t)(void *);
|
||||||
|
|
||||||
/* Function signatures */
|
/* Function signatures */
|
||||||
void __memory_write_detected(void *, void *, long long, int, char *, char *);
|
void __memory_write_detected(void *, void *, long long, int, char *, char *);
|
||||||
void __list_integrity_check(void);
|
void __list_integrity_check(void);
|
||||||
void __list_init_detected(void *);
|
void __list_init_detected(void *);
|
||||||
|
void __memory_load_detected(void *);
|
||||||
|
|
||||||
/* Create file-scope variables for our analyzer */
|
/* Create file-scope variables for our analyzer */
|
||||||
static bool __memory_analyzer_initialized = false;
|
static bool __memory_analyzer_initialized = false;
|
||||||
static memory_analyzer_callback_t __memory_analyzer_function_callback = NULL;
|
static memory_analyzer_callback_t __memory_analyzer_function_callback = NULL;
|
||||||
static memory_analyzer_list_init_callback_t __memory_analyzer_list_callback = NULL;
|
static memory_analyzer_list_init_callback_t __memory_analyzer_list_callback = NULL;
|
||||||
static memory_analyzer_list_integrity_callback_t __memory_analyzer_list_integrity_callback = NULL;
|
static memory_analyzer_list_integrity_callback_t __memory_analyzer_list_integrity_callback = NULL;
|
||||||
|
static memory_load_detected_callback_t __memory_load_detected_callback = NULL;
|
||||||
|
|
||||||
void initialize_memory_analyzer(memory_analyzer_callback_t callback, memory_analyzer_list_init_callback_t list_callback, memory_analyzer_list_integrity_callback_t list_integrity_callback) {
|
void initialize_memory_analyzer(memory_analyzer_callback_t callback, memory_analyzer_list_init_callback_t list_callback, memory_analyzer_list_integrity_callback_t list_integrity_callback, memory_load_detected_callback_t memory_load_callback) {
|
||||||
__memory_analyzer_function_callback = callback;
|
__memory_analyzer_function_callback = callback;
|
||||||
__memory_analyzer_list_callback = list_callback;
|
__memory_analyzer_list_callback = list_callback;
|
||||||
__memory_analyzer_list_integrity_callback = list_integrity_callback;
|
__memory_analyzer_list_integrity_callback = list_integrity_callback;
|
||||||
|
__memory_load_detected_callback = memory_load_callback;
|
||||||
__memory_analyzer_initialized = true;
|
__memory_analyzer_initialized = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void __memory_load_detected(void * pointer) {
|
||||||
|
if (__memory_analyzer_initialized) {
|
||||||
|
__memory_load_detected_callback(pointer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void __memory_write_detected(void * pointer, void * value, long long size, int line_number, char * filename, char * structname) {
|
void __memory_write_detected(void * pointer, void * value, long long size, int line_number, char * filename, char * structname) {
|
||||||
/* If the memory analyzer is initialized, create a function call to our callback */
|
/* If the memory analyzer is initialized, create a function call to our callback */
|
||||||
if (__memory_analyzer_initialized) {
|
if (__memory_analyzer_initialized) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user