[so] [Tema3][lin]Eroare ciudata tratare ssegv

Daniel CIOCÎRLAN daniel.ciocirlan1607 at cti.pub.ro
Sun Apr 21 20:09:57 EEST 2013


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?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20130421/46f43ce2/attachment.html>


More information about the so mailing list