[so] [Tema3][lin]Eroare ciudata tratare ssegv
oana niculaescu
oana.niculaescu at gmail.com
Mon Apr 22 09:05:37 EEST 2013
2013/4/21 Daniel CIOCÎRLAN <daniel.ciocirlan1607 at cti.pub.ro>:
> Salut din nou,
>
> Am reusit sa imi raspund la prima intrebare (la treaba cu de ce sunt
> adresele multiplu de pagesize); nu am inclus in testul meu individual si
> <stdlib>, iar "pos" era mereu 0.
>
> Mult mai important e faptul ca problema persista in acelasi mod.
>
> Ma poate ajuta cineva?
>
> Multumesc mult
> ________________________________
> From: so-bounces at cursuri.cs.pub.ro [so-bounces at cursuri.cs.pub.ro] on behalf
> of Daniel CIOCÎRLAN [daniel.ciocirlan1607 at cti.pub.ro]
> Sent: Sunday, April 21, 2013 7:51 PM
> To: so at cursuri.cs.pub.ro
> Subject: [so] [Tema3][lin]Eroare ciudata tratare ssegv
>
> Salut,
>
> Am nevoie de putin ajutor la o situatie pe care nu o inteleg.
>
> Testul 21 (si probabil nu numai el, ca mai multe imi pica) imi da urmatoarea
> situatie:
>
> for i
> pos = get_random_byte_mapping_position(1);
> printf("faulting at %p\n", map.start + i * p_sz + pos); // linia
> asta am pus-o eu
> tmp = ((char *) map.start)[i * p_sz + pos]; // linia asta
> genereaza segfault de citire
>
> iar la handler-ul de tratare a semnalului sigsegv, primele doua linii la
> mine, dupa declaratiile de variabile, sunt:
>
> addr = (char*)siginfo->si_addr;
> printf("faulted by %p\n", addr);
>
> Pentru ca testul 21 are 10 pagini din care se incearca citire, voi avea 10
> semnale. Problema e ca nu inteleg de ce am urmatorul output:
>
> faulting at 0xb77d3000
> faulted by 0xb77d3000
> -- pana aici primul semnal a fost tratat
> -- acum ar trebui sa urmeze fault-uri pentru toate celelalte pagini
> faulting at 0xb77d4000
> faulting at 0xb77d5000
> faulting at 0xb77d6000
> faulting at 0xb77d7000
> faulting at 0xb77d8000
> faulting at 0xb77d9000
> faulting at 0xb77da000
> faulting at 0xb77db000
> faulting at 0xb77dc000
> --- faultat aici
> faulted by 0xb77deab4
> --- dupa care
> Segmentation fault
>
> Nu inteleg de ce, daca "pos" a fost luat aleator, adresele de fault au
> numere intregi (multipli de pagesize) si de ce, daca outputul fault-ului al
> doilea zice ca va urma xxxx4000, in handler am xxxxeab4 (care evident e in
> afara intregii zone alocate, pana la c000).
>
> Are cineva vreo idee?
>
Salut!
Ai rezolvat problema? Am si eu ceva asemanator, rularea oprindu-se la
testul 20. Daca ai rezolvat ne spui si noua despre ce era vorba?
Multumesc
Oana
More information about the so
mailing list