On some platforms, the following problem has been encountered:
The file offset passed from the 'load' function to the 'load_segment' function in process.c is coming out to be 0 whereas it should be 4096 (first page has the headers of the executable). I couldn't figure out why this is happeningHere is a temporary fix:
In load function comment out a line as shown below: if (!load_segment (file, file_page, (void *) mem_page, read_bytes, zero_bytes, writable)) goto done; } else // goto done; break; Also uncomment the lines in load_segment if you have commented it earlier. It should solve the problem.