<div dir="auto"><div>Problema o reproduci mai mult ca sigur rulând același set de comenzi pe mașina virtuala de so <div dir="auto"><br></div><div dir="auto">Posibil local sa funcționeze corect </div><div dir="auto"><br></div><div dir="auto">NU am timp acum sa ma uit la tema, dar segmentation fault ar putea apărea din cauza accesului la un pointer null foarte probabil sau ai vreun overflow în acel caz </div><br><div class="gmail_extra"><br><div class="gmail_quote">On Mar 11, 2018 20:36, "Cristina Voineag" <<a href="mailto:cristina.voineag@ymail.com">cristina.voineag@ymail.com</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:13px"><div></div>
<div>Multumesc foarte mult pentru sfaturi.</div><div>Am vazut de la inceput ca testul 29 are <span style="font-family:"Helvetica Neue",Helvetica,Arial,sans-serif">segmentation fault pe vmchecker, nu l-am ignorat, am verificat si initial dar si dupa ce m-ai atentionat, in caz ca mi-a scapat ceva: nu primesc nicio eroare, nici cu valgrind, nici cu gdb, rulat de mana testul trece fara nicio problema. Am vazut si ce caz testeaza si in codul meu tratasem de la inceput aceasta exceptie, cu tot cu eliberare de memorie. Nu inteleg de ce apare segmentation fault si cum as putea reproduce problema.</span></div><div><br></div><div>Rezultat valgrind:</div><div><div>$ valgrind ./tema1 1 <a href="http://test29.in" target="_blank">test29.in</a></div><div>==8265== Memcheck, a memory error detector</div><div>==8265== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.</div><div>==8265== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info</div><div>==8265== Command: ./tema1 1 <a href="http://test29.in" target="_blank">test29.in</a></div><div>==8265== </div><div>asdf </div><div>Comanda gresita.(tema1.c, 147): Nu s-a reusit executia.</div><div>: Success</div><div>==8265== </div><div>==8265== HEAP SUMMARY:</div><div>==8265== in use at exit: 0 bytes in 0 blocks</div><div>==8265== total heap usage: 7 allocs, 7 frees, 5,489 bytes allocated</div><div>==8265== </div><div>==8265== All heap blocks were freed -- no leaks are possible</div><div>==8265== </div><div>==8265== For counts of detected and suppressed errors, rerun with: -v</div><div>==8265== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)</div><div><br></div><div>Rezultat gdb:</div><div><div>(gdb) run 1 <a href="http://test29.in" target="_blank">test29.in</a> </div><div>Starting program: /path/SO/Tema1/1-multi/util/<wbr>tema1 1 <a href="http://test29.in" target="_blank">test29.in</a></div><div>asdf </div><div>Comanda gresita.(tema1.c, 147): Nu s-a reusit executia.</div><div>: Success</div><div>[Inferior 1 (process 8286) exited with code 01]</div><div><br></div><br></div><div><br></div><br></div><div class="elided-text">
<div id="m_-7143882204541720926yahoo_quoted_0856758529" class="m_-7143882204541720926yahoo_quoted">
<div style="font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:13px;color:#26282a">
<div>
On Sunday, March 11, 2018, 3:30:05 PM GMT+2, Mihai Barbulescu <<a href="mailto:b12mihai@gmail.com" target="_blank">b12mihai@gmail.com</a>> wrote:
</div>
<div><br></div>
<div><br></div>
<div><div dir="ltr">Buna Cristina,<br clear="none"><br clear="none">Cateva obiectii:<br clear="none"><br clear="none">1. Makefile-ul de pe Linux tot nu imi place cum arata (nu pasa .h-uri<br clear="none">ca input la gcc)<br clear="none"><br clear="none">2. Pentru Makefile-ul de pe Windows:<br clear="none"> - porneste de la cel de Linux si inlocuieste gcc cu cl<br clear="none"> - Vad ca folosesti /D_CRT_SECURE_NO_DEPRECATE asa cum e specificat aici [2]<br clear="none"> - Nu uita ca in lumea cl.exe fata de gcc se foloseste standardul<br clear="none">de compilare C89. De exemplu, ceva care imi sare in ochi de pe<br clear="none">vmchecker, in functia ta main(), e ca declari variable in mijlocul<br clear="none">codului. C99 din gcc te lasa, C89 din Windows nu. Pe Linux, ca sa poti<br clear="none">investiga problemele raportate de cl poti face foarte frumos adaugand<br clear="none">la compilarea cu gcc optiunea -std=c89 sau -ansi (o<br clear="none">activezi/dezactivezi in functie de cum nu iti este clar ce nu merge)<br clear="none"><br clear="none">3. Ai testul 29 care isi ia segmentation fault, urmareste indicatiile<br clear="none">de debugging de aici [1] (note-tip-ul verde cu rezolvarea erorilor de<br clear="none">tip Segmentation Fault)<br clear="none"><br clear="none"><br clear="none">[1] <a shape="rect" href="https://ocw.cs.pub.ro/courses/so/teme/tema-1#punctare" target="_blank">https://ocw.cs.pub.ro/courses/<wbr>so/teme/tema-1#punctare</a><br clear="none">[2] <a shape="rect" href="https://ocw.cs.pub.ro/courses/so/teme/general#build" target="_blank">https://ocw.cs.pub.ro/courses/<wbr>so/teme/general#build</a><br clear="none"><div class="m_-7143882204541720926yqt2617546766" id="m_-7143882204541720926yqtfd84250"><br clear="none">2018-03-11 15:10 GMT+02:00 Cristina Voineag <<a shape="rect" href="mailto:cristina.voineag@ymail.com" target="_blank">cristina.voineag@ymail.com</a>>:<br clear="none">> Aseara am reusit sa fac sa treaca toate testele dar Makefile-ul era gresit.<br clear="none">> Pentru ca am refolosit surse de anul trecut, am omis faptul ca hash.c nu<br clear="none">> trebuie sa apara in Makefile-ul acestei teme. Am corectat azi Makefile-ul<br clear="none">> conform specificatiilor.<br clear="none">><br clear="none">> Incepand rezolvarea pe windows, intampin urmatoarea problema: nu pot compila<br clear="none">> de niciun fel sursele. Codul stiu ca este bun, pe Linux imi trec testele,<br clear="none">> dar chiar si cea mai simpla comanda: cl tema1.c, imi genereaza o gramada de<br clear="none">> erori, de exemplu, imi spune despre toate variabilele folosite ca sunt<br clear="none">> nedeclarate sau ca nu am ';' la sfarsitul liniilor. Am incercat toate<br clear="none">> variantele gasite in laborator sau pe internet dar situatia ramane la fel.<br clear="none">> Precizez ca folosec masina vituala windows de la SO.<br clear="none">><br clear="none">> Multumesc anticipat,<br clear="none">> Cristina<br clear="none">><br clear="none">> On Sunday, March 11, 2018, 12:31:36 PM GMT+2, Mihai Barbulescu<br clear="none">> <<a shape="rect" href="mailto:b12mihai@gmail.com" target="_blank">b12mihai@gmail.com</a>> wrote:<br clear="none">><br clear="none">><br clear="none">> Pe lista publica acum ca să vadă și ceilalți studenți. Procedura ta de<br clear="none">> compilare e complet greșită, de aia ai prosopul de erori probabil și local,<br clear="none">> te rog sa te uiți cu atenție în laborator 1 (1) cum se fac linkarile versus<br clear="none">> ce ai tu aici<br clear="none">><br clear="none">> gcc -Wall -fPIC tema1.c utils.h hashtable.h hash.h -c<br clear="none">> gcc -Wall -fPIC -o tema1 libhash.so<br clear="none">><br clear="none">><br clear="none">> NU TREBUIE sa regenerati libhash.so!!!!<br clear="none">><br clear="none">> (1) <a shape="rect" href="https://ocw.cs.pub.ro/courses/so/laboratoare/laborator-01" target="_blank">https://ocw.cs.pub.ro/courses/<wbr>so/laboratoare/laborator-01</a><br clear="none">><br clear="none">> On Mar 10, 2018 19:58, "Cristina Voineag via so" <<a shape="rect" href="mailto:so@cursuri.cs.pub.ro" target="_blank">so@cursuri.cs.pub.ro</a>><br clear="none">> wrote:<br clear="none">><br clear="none">> Salut,<br clear="none">><br clear="none">> Nu reusesc sa rulez checker-ul nici pe masina virtuala linux, nici pe pe<br clear="none">> masina fizica.<br clear="none">><br clear="none">> Eroare masina fizica: ./tema1: error while loading shared libraries:<br clear="none">> libhash.so: wrong ELF class: ELFCLASS32.<br clear="none">> Eroare masina vituala linux: ./tema1: cannot execute binary file: Exec<br clear="none">> format error.<br clear="none">><br clear="none">> Masina virtuala linux: Am cautat pe net si am gasit ca ar putea fi o<br clear="none">> problema cu faptul ca rulez checker-ul direct dintr-un folder Shared. Prin<br clear="none">> urmare, am arhivat fisierele necesare checker-ului si le-am mutat intr-un<br clear="none">> folder ne-share-uit => in continuare nu pot rula.<br clear="none">><br clear="none">> De asemenea, pentru verificarea coding style-ului cu <a href="http://checkpatch.pl" target="_blank">checkpatch.pl</a>, desi am<br clear="none">> primit warning-uri si am corectat codul, nu primesc punctajulul aferent. In<br clear="none">> plus, apare urmatorul output: No structs that should be const will be found<br clear="none">> - file '/SO/Tema1/1-multi/checker/ const_structs.checkpatch': No such file<br clear="none">> or directory.<br clear="none">><br clear="none">> Imi puteti da niste sugestii pentru rezolvarea acestor probleme ?<br clear="none">> Multumesc anticipat.<br clear="none">><br clear="none">> ______________________________ _________________<br clear="none">> <a shape="rect" href="http://ocw.cs.pub.ro/courses/" target="_blank">http://ocw.cs.pub.ro/courses/ </a>so/info/lista-discutii</div><br clear="none"><br clear="none"><br clear="none"><br clear="none">-- <br clear="none">Cu stimă,<br clear="none">Mihai Bărbulescu</div></div>
</div>
</div></div></div></div></blockquote></div><br></div></div></div>