Gata, am rezolvat si cu alocarile intermediare. Multumesc mult de ajutor, Alin-Gabriel Gheorghe 331CA
În data de 13 aprilie 2016, 11:28, Adrian Stanciu < [email protected]> a scris: > 2016-04-13 11:17 GMT+03:00 Alin Gabriel Gheorghe > <[email protected]>: > > Problema era ca alocam (cu calloc) un char *buffer dupa ce apelam > > VirtualAlloc si setam pointerul de start. > > > > Singura explicatie pentru acest comportament ar fi ca calloc-ul mapa > memorie > > peste memoria mea, dar e o explicatie fabricata de mine. Poate cineva sa > > ofere o explicatie mai buna? > > > > E o problemă, deoarece zona este eliberată și alocările tale pot să fi > făcute acolo. Mai târziu, te aștepți să o poți rezerva din nou. > Rezervarea pagină cu pagină trebuie făcută imediat după eliberarea > zonei mari. > > Încă ai unele alocări intermediare ce îți pot face probleme. > > PS: folosiți bottom-posting [1] în discuțiile de pe listă pentru o > citire mai ușoară a intervențiilor > > > > > În data de 13 aprilie 2016, 11:12, Adrian Stanciu > > <[email protected]> a scris: > >> > >> 2016-04-13 11:02 GMT+03:00 Alexandru Jercaianu via so > >> <[email protected]>: > >> > Salut, > >> > > >> > Memoria eliberata cu VirtualFree trebuie sa fi fost alocată cu > >> > VirtualAlloc. > >> > Probabil apelezi VirtualFree peste ceva alocat cu MapViewOfFile. Aveam > >> > aceeași problema. > >> > > >> > Alex Jercaianu > >> > > >> > Buna seara, > >> > > >> > Am intampinat o problema la rularea testelor pe masina virtuala. Se > pare > >> > ca > >> > in functia vm_free() are un comportament nedeterminist, in sensul ca > la > >> > rularea checker-ului se activeaza un DIE din acea functie aleator > >> > (intotdeauna unul ce contine un VirtualFree). Am incercat sa rulez > >> > separat > >> > testele care pica asa si am constatat ca uneori dau fail (cu eroarea > de > >> > mai > >> > sus) si alteori pass fara probleme.* > >> > > >> > Mentionez ca local, pe sistemul meu de operare (Windows 7 x64), > testele > >> > trec > >> > fara probleme la rulari succesive. De asemenea, mentionez si ca nu am > >> > implementat functionalitate pentru mai multe apeluri vm_alloc() (sa > fie > >> > oare > >> > de la asta?). > >> > > >> > Stie cineva care ar putea fi problema? > >> > > >> > >> Salut, > >> > >> Pe lângă recomandarea lui Alex, să faci toți pașii de rezervare a > >> paginilor virtuale unul după celălalt. Din ce văd în cod după ce > >> eliberezi spațiul mare și până faci alocarea pagină cu pagină, mai > >> faci unele alocări de memorie ce pot să fie plasate în spațiul ce îl > >> vrei rezervat pentru paginile virtuale. Verifică dacă unele > >> VirtualAlloc() dau eroare. Cred că de aici e comportamentul > >> nedeterminist (depinde unde se fac acele alocări intermediare). > >> > >> Dacă nu e de la asta, să-mi spui. > >> > > [1] > http://ocw.cs.pub.ro/courses/so/info/lista-discutii#inlineinterleaved_posting > > Adrian >
_______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
