Hello, El 02/04/14 12:24, Alexis Fajardo Moya escribió:
=>=>=> lastmoduleend 0 received from rounded this_module->end() 0
Note this output. After move the first module (00, corresponding to fiasco), the "end" value of the variable this_module is 0. After many printfs, I (aka. my team) discover the problem in the function move_module (l4util_mb_info_t *mbi, int i, Region *from, Region *to, bool overlap_check) after execute the sentence memmove((void *)to->begin(), (void *)start, size); the *begin* and *end* values of the region *to*, originally with values 711cf000 and 712256db, turns in 10101464c457f and 0. The *begin* and *end* values of the region *from* are set to the corresponding values of the region *to*, causing the problem in the assigment to *lastmoduleend* variable in the *move_modules* function, making false the comparision for (unsigned i = 0; i < mbi->mods_count; ++i) { ... if (i < 3) { ... if (start < lastmoduleend) // false, (7106e000 < 0)? in the second iteration of the for sentence. Best regards, Alexis.