[so] [Tema 3] [Linux] Test9

Adrian Șendroiu molecula2788 at gmail.com
Fri Apr 27 23:18:14 EEST 2018


2018-04-27 21:12 GMT+03:00 Alexandru Neculai via so <so at cursuri.cs.pub.ro>:
> Buna seara,
>
> Intampin o problema la testul 9 din cadrul temei. Dupa 17 fault-uri tratate
> corect inchei programul cu segmentation fault deoarece detectez cu flagul
> SEGV_ACCERR ca se acceseaza cu drepturi gresite o zona de memorie; nu
> inteleg de ce se intampla asta, in conditiile in care celelalte teste trec.
> Adresa de memorie accesata este 0x805a6d8. Am urcat codul pe GitLab. Daca se
> poate uita cineva as fi recunoscator.
>
> Multumesc anticipat,
>
> Alexandru Neculai
>
> _______________________________________________
> http://ocw.cs.pub.ro/courses/so/info/lista-discutii

Salut,

La prima vedere mi se pare că nu tratezi cazul în care adresa de fault
este într-o pagină care e complet în bss și care trebuie inițializată
cu 0.

În general, trebuie să fie tratate 3 cazuri:
- pagina alocată e conținută complet în fișier: se copiază page_size
bytes din fișier
- pagina alocată are parțial date în fișier, parțial în bss: în cazul
ăsta se încarcă datele din fișier cât e nevoie, iar restul până la
page_size se zeroizează
- pagina alocată e complet în bss: se alocă o pagină întreagă cu zerouri


More information about the so mailing list