memory_map_t get_memory_map(void)
{
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 */
memory_map_t get_memory_map(void)
{
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 */
memory_map_t ret = NULL; /* The memory map to return */
/* The following variables are used during the parsing of the file "maps" */
memory_map_t ret = NULL; /* The memory map to return */
/* The following variables are used during the parsing of the file "maps" */
xbt_assert(fp,
"Cannot open /proc/self/maps to investigate the memory map of the process. Please report this bug.");
ret = xbt_new0(s_memory_map_t, 1);
/* Read one line at the time, parse it and add it to the memory map to be returned */
xbt_assert(fp,
"Cannot open /proc/self/maps to investigate the memory map of the process. Please report this bug.");
ret = xbt_new0(s_memory_map_t, 1);
/* Read one line at the time, parse it and add it to the memory map to be returned */
- while ((read = getline(&line, &n, fp)) != -1) {
+ while ((read = xbt_getline(&line, &n, fp)) != -1) {
+
+ //fprintf(stderr,"%s", line);
xbt_realloc(ret->regions, sizeof(memreg) * (ret->mapsize + 1));
memcpy(ret->regions + ret->mapsize, &memreg, sizeof(memreg));
ret->mapsize++;
xbt_realloc(ret->regions, sizeof(memreg) * (ret->mapsize + 1));
memcpy(ret->regions + ret->mapsize, &memreg, sizeof(memreg));
ret->mapsize++;