X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b61e4656c43c76b402a84cc138032a9f0126d951..bc55ce95e825dde6bfa5615892683f883c7c1d99:/src/mc/mc_process.cpp diff --git a/src/mc/mc_process.cpp b/src/mc/mc_process.cpp index 31e79cf4b6..a1a139ea64 100644 --- a/src/mc/mc_process.cpp +++ b/src/mc/mc_process.cpp @@ -81,7 +81,8 @@ void MC_process_init(mc_process_t process, pid_t pid, int sockfd) MC_process_open_memory_file(process); // Read std_heap (is a struct mdesc*): - dw_variable_t std_heap_var = MC_process_find_variable_by_name(process, "std_heap"); + dw_variable_t std_heap_var = MC_process_find_variable_by_name(process, + "__mmalloc_default_mdp"); if (!std_heap_var) xbt_die("No heap information in the target process"); if(!std_heap_var->address) @@ -154,36 +155,34 @@ void MC_process_clear(mc_process_t process) void MC_process_refresh_heap(mc_process_t process) { - assert(!MC_process_is_self(process)); + xbt_assert(mc_mode == MC_MODE_SERVER); + xbt_assert(!MC_process_is_self(process)); // Read/dereference/refresh the std_heap pointer: if (!process->heap) { - xbt_mheap_t oldheap = mmalloc_set_current_heap(mc_heap); process->heap = (struct mdesc*) malloc(sizeof(struct mdesc)); - mmalloc_set_current_heap(oldheap); } MC_process_read(process, MC_ADDRESS_SPACE_READ_FLAGS_NONE, process->heap, process->heap_address, sizeof(struct mdesc), MC_PROCESS_INDEX_DISABLED ); + process->cache_flags |= MC_PROCESS_CACHE_FLAG_HEAP; } void MC_process_refresh_malloc_info(mc_process_t process) { - assert(!MC_process_is_self(process)); + xbt_assert(mc_mode == MC_MODE_SERVER); + xbt_assert(!MC_process_is_self(process)); if (!(process->cache_flags & MC_PROCESS_CACHE_FLAG_HEAP)) MC_process_refresh_heap(process); // Refresh process->heapinfo: size_t malloc_info_bytesize = (process->heap->heaplimit + 1) * sizeof(malloc_info); - - xbt_mheap_t heap = mmalloc_set_current_heap(mc_heap); process->heap_info = (malloc_info*) realloc(process->heap_info, malloc_info_bytesize); - mmalloc_set_current_heap(heap); - MC_process_read(process, MC_ADDRESS_SPACE_READ_FLAGS_NONE, process->heap_info, process->heap->heapinfo, malloc_info_bytesize, MC_PROCESS_INDEX_DISABLED); + process->cache_flags |= MC_PROCESS_CACHE_FLAG_MALLOC_INFO; } #define SO_RE "\\.so[\\.0-9]*$" @@ -593,7 +592,7 @@ unsigned long MC_process_read_dynar_length(mc_process_t process, const void* rem static pthread_once_t zero_buffer_flag = PTHREAD_ONCE_INIT; static const void* zero_buffer; -static const int zero_buffer_size = 10 * 4096; +static const size_t zero_buffer_size = 10 * 4096; static void MC_zero_buffer_init(void) {