- while (i < maps->mapsize) {
- reg = maps->regions[i];
- if (maps->regions[i].pathname == NULL
- || strcmp(basename(maps->regions[i].pathname), name)) {
+ for (size_t i = 0; i < maps.size(); ++i) {
+ simgrid::mc::VmMap const& reg = maps[i];
+ if (maps[i].pathname.empty()
+ || strcmp(basename(maps[i].pathname.c_str()), name)) {
// Nothing to do
} else if ((reg.prot & PROT_WRITE)) {
xbt_assert(!result->start_rw,
"Multiple read-write segments for %s, not supported",
// Nothing to do
} else if ((reg.prot & PROT_WRITE)) {
xbt_assert(!result->start_rw,
"Multiple read-write segments for %s, not supported",
result->start_rw = (char*) reg.start_addr;
result->end_rw = (char*) reg.end_addr;
// .bss is usually after the .data:
result->start_rw = (char*) reg.start_addr;
result->end_rw = (char*) reg.end_addr;
// .bss is usually after the .data:
- s_map_region_t *next = &(maps->regions[i + 1]);
- if (next->pathname == NULL && (next->prot & PROT_WRITE)
- && next->start_addr == reg.end_addr) {
- result->end_rw = (char*) maps->regions[i + 1].end_addr;
+ simgrid::mc::VmMap const& next = maps[i + 1];
+ if (next.pathname.empty() && (next.prot & PROT_WRITE)
+ && next.start_addr == reg.end_addr) {
+ result->end_rw = (char*) maps[i + 1].end_addr;
}
} else if ((reg.prot & PROT_READ) && (reg.prot & PROT_EXEC)) {
xbt_assert(!result->start_exec,
"Multiple executable segments for %s, not supported",
}
} else if ((reg.prot & PROT_READ) && (reg.prot & PROT_EXEC)) {
xbt_assert(!result->start_exec,
"Multiple executable segments for %s, not supported",
result->start_exec = (char*) reg.start_addr;
result->end_exec = (char*) reg.end_addr;
} else if ((reg.prot & PROT_READ) && !(reg.prot & PROT_EXEC)) {
xbt_assert(!result->start_ro,
"Multiple read only segments for %s, not supported",
result->start_exec = (char*) reg.start_addr;
result->end_exec = (char*) reg.end_addr;
} else if ((reg.prot & PROT_READ) && !(reg.prot & PROT_EXEC)) {
xbt_assert(!result->start_ro,
"Multiple read only segments for %s, not supported",