X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5ff7a0f00eab7d7005451ad66f517ac9c4bfd68a..e39bbd6388a46a93cf74fe1562e2015060071c24:/src/mc/mc_liveness.c diff --git a/src/mc/mc_liveness.c b/src/mc/mc_liveness.c index 08ee45f0f1..1ad236eabb 100644 --- a/src/mc/mc_liveness.c +++ b/src/mc/mc_liveness.c @@ -33,108 +33,34 @@ unsigned int hash_region(char *str, int str_len){ } -const char* get_memory_map_addr(void *addr){ - - FILE *fp; /* File pointer to process's proc maps file */ - char *line = NULL; /* Temporal storage for each line that is readed */ - ssize_t read; /* Number of bytes readed */ - size_t n = 0; /* Amount of bytes to read by getline */ - - fp = fopen("/proc/self/maps", "r"); - - if(fp == NULL) - perror("fopen failed"); - - if(addr == NULL){ - free(line); - fclose(fp); - return "nil"; - } - - xbt_dynar_t lfields = NULL; - xbt_dynar_t start_end = NULL; - void *start_addr; - void *end_addr; - - while ((read = getline(&line, &n, fp)) != -1) { - - xbt_str_trim(line, NULL); - xbt_str_strip_spaces(line); - lfields = xbt_str_split(line,NULL); - - start_end = xbt_str_split(xbt_dynar_get_as(lfields, 0, char*), "-"); - start_addr = (void *) strtoul(xbt_dynar_get_as(start_end, 0, char*), NULL, 16); - end_addr = (void *) strtoul(xbt_dynar_get_as(start_end, 1, char*), NULL, 16); - - if((addr > start_addr) && ( addr < end_addr)){ - free(line); - fclose(fp); - if(start_addr == std_heap) - return "std_heap"; - if(start_addr == raw_heap) - return "raw_heap"; - if(xbt_dynar_length(lfields) == 6) - return xbt_dynar_get_as(lfields, xbt_dynar_length(lfields) - 1, char*); - else - return "Anonymous"; - } - - } - - free(line); - fclose(fp); - return "Unknown area"; - -} - int data_program_region_compare(void *d1, void *d2, size_t size){ int distance = 0; - int pointer_align; int i; - char *pointed_address1 = NULL, *pointed_address2 = NULL; for(i=0; i