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:
gback 2021-03-31 14:39:03 -04:00
commit 69eac96b13

View File

@ -15,24 +15,36 @@ typedef void (*memory_analyzer_list_init_callback_t)(void *);
/* Create typedef for the list callback */
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 */
void __memory_write_detected(void *, void *, long long, int, char *, char *);
void __list_integrity_check(void);
void __list_init_detected(void *);
void __memory_load_detected(void *);
/* Create file-scope variables for our analyzer */
static bool __memory_analyzer_initialized = false;
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_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_list_callback = list_callback;
__memory_analyzer_list_integrity_callback = list_integrity_callback;
__memory_load_detected_callback = memory_load_callback;
__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) {
/* If the memory analyzer is initialized, create a function call to our callback */
if (__memory_analyzer_initialized) {