On Sun, 5 Apr 2020 at 11:04, Mihaila Corina via so <so@cursuri.cs.pub.ro> wrote:
>
> Este in regula daca pe Windows mem_size <= file_size pentru orice segment?
> De asemenea, nu inteleg de ce la testul 3 nu imi da seg fault pentru a 3-a 
> (ultima pagina) din segmentul 1, adica de ce nu face demand ptr toate 
> paginile, din toate segmentele.
> Iar la ultimul test da seg fault in exec_parser.c, functia so_start_exec, 
> linia ((void(*)(void))exec->entry)();, cand incearca sa ruleze entry pointul 
> si nu inteleg care ar putea fi cauza.
>
> Am trimis codul pe vmchecker. Numele meu de utilizator este corina.mihaila
>
> Multumesc!

Bună,

Din ce văd la eroarea de la testul 3:
03) Test sum................................................failed  [ 0/95]
_test/outputs/test3.out vs _test/refs/test3.ref:
--- _test/outputs/test3.out 2020-04-05 13:24:00.210019400 +0300
+++ _test/refs/test3.ref 2020-04-05 13:23:52.378805700 +0300
@@ -1 +1 @@
-574908040
+1720232652

Valoarea corectă trebuia să fie 1720232652 (0x6688AACC), iar tu obții
574908040 (0x22446688).

Dacă te uiți pe codul sursă al testului, se adună elementele unui
array care are dimensiune 0x20000 (2 pagini).
Fiecare pagină a arrayului începe cu un element nenul, iar restul sunt
0. Cele 2 valori nenule sunt 0x11223344 și 0x55667788.

Faptul că tu obții ca rezultat 0x22446688 ar sugera că aduni de 2 ori
valoarea 0x11223344, adică pentru a doua pagină a arrayului mapezi
cumva tot prima pagină.
_______________________________________________
http://ocw.cs.pub.ro/courses/so/info/lista-discutii

Raspunde prin e-mail lui