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? Alin-Gabriel Gheorghe 331CA Î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. > > Adrian >
_______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
