<div><div dir="auto">Salut,</div><div dir="auto"><br></div><div dir="auto">Multumesc de raspuns, am rezolvat.</div><div dir="auto"><br></div><div dir="auto">O zi buna,</div><div dir="auto"><br></div><div dir="auto">Alexandru neculai</div><br><div class="gmail_quote"><div>On Fri, 27 Apr 2018 at 23:18, Adrian Șendroiu <<a href="mailto:molecula2788@gmail.com">molecula2788@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">2018-04-27 21:12 GMT+03:00 Alexandru Neculai via so <<a href="mailto:so@cursuri.cs.pub.ro" target="_blank">so@cursuri.cs.pub.ro</a>>:<br>
> Buna seara,<br>
><br>
> Intampin o problema la testul 9 din cadrul temei. Dupa 17 fault-uri tratate<br>
> corect inchei programul cu segmentation fault deoarece detectez cu flagul<br>
> SEGV_ACCERR ca se acceseaza cu drepturi gresite o zona de memorie; nu<br>
> inteleg de ce se intampla asta, in conditiile in care celelalte teste trec.<br>
> Adresa de memorie accesata este 0x805a6d8. Am urcat codul pe GitLab. Daca se<br>
> poate uita cineva as fi recunoscator.<br>
><br>
> Multumesc anticipat,<br>
><br>
> Alexandru Neculai<br>
><br>
> _______________________________________________<br>
> <a href="http://ocw.cs.pub.ro/courses/so/info/lista-discutii" rel="noreferrer" target="_blank">http://ocw.cs.pub.ro/courses/so/info/lista-discutii</a><br>
<br>
Salut,<br>
<br>
La prima vedere mi se pare că nu tratezi cazul în care adresa de fault<br>
este într-o pagină care e complet în bss și care trebuie inițializată<br>
cu 0.<br>
<br>
În general, trebuie să fie tratate 3 cazuri:<br>
- pagina alocată e conținută complet în fișier: se copiază page_size<br>
bytes din fișier<br>
- pagina alocată are parțial date în fișier, parțial în bss: în cazul<br>
ăsta se încarcă datele din fișier cât e nevoie, iar restul până la<br>
page_size se zeroizează<br>
- pagina alocată e complet în bss: se alocă o pagină întreagă cu zerouri<br>
</blockquote></div></div>