X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0700b488178346d3cccc454f641a7155c6ff6026..978a9da87ac03ecca12d6980e56b8f31989f2bdf:/src/mc/mc_page_snapshot.cpp diff --git a/src/mc/mc_page_snapshot.cpp b/src/mc/mc_page_snapshot.cpp index 245fc13e53..b7b752c2a0 100644 --- a/src/mc/mc_page_snapshot.cpp +++ b/src/mc/mc_page_snapshot.cpp @@ -57,7 +57,7 @@ void mc_restore_page_snapshot_region(mc_mem_region_t region, size_t page_count, /** @brief Like pread() but without partial reads */ static size_t pread_whole(int fd, void* buf, size_t count, off_t offset) { - size_t res; + size_t res = 0; char* data = (char*) buf; while(count) { @@ -122,7 +122,7 @@ static void mc_read_pagemap(uint64_t* pagemap, size_t page_start, size_t page_co size_t bytesize = sizeof(uint64_t) * page_count; off_t offset = sizeof(uint64_t) * page_start; if (pread_whole(mc_model_checker->fd_pagemap, pagemap, bytesize, offset) != bytesize) { - xbt_die("Coult not read pagemap"); + xbt_die("Could not read pagemap"); } } @@ -144,11 +144,12 @@ mc_mem_region_t mc_region_new_sparse(int type, void *start_addr, size_t size, mc uint64_t* pagemap = NULL; if (mc_model_checker->parent_snapshot) { pagemap = (uint64_t*) alloca(sizeof(uint64_t) * page_count); - mc_read_pagemap(pagemap, mc_page_number(start_addr), page_count); + mc_read_pagemap(pagemap, mc_page_number(NULL, start_addr), page_count); } // Take incremental snapshot: - new_reg->page_numbers = mc_take_page_snapshot_region(start_addr, page_count, pagemap, ref_reg->page_numbers); + new_reg->page_numbers = mc_take_page_snapshot_region(start_addr, page_count, pagemap, + ref_reg==NULL ? NULL : ref_reg->page_numbers); return new_reg; } @@ -164,7 +165,7 @@ void mc_region_restore_sparse(mc_mem_region_t reg, mc_mem_region_t ref_reg) // Read soft-dirty bits if necessary in order to know which pages have changed: if (mc_model_checker->parent_snapshot) { pagemap = (uint64_t*) alloca(sizeof(uint64_t) * page_count); - mc_read_pagemap(pagemap, mc_page_number(reg->start_addr), page_count); + mc_read_pagemap(pagemap, mc_page_number(NULL, reg->start_addr), page_count); } // Incremental per-page snapshot restoration: