[so] [SO][Tema1] Rulare checker pe masina virtuala linux

Mihai Barbulescu b12mihai at gmail.com
Sun Mar 11 20:46:19 EET 2018


Problema o reproduci mai mult ca sigur rulând același set de comenzi pe
mașina virtuala de so

Posibil local sa funcționeze corect

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


On Mar 11, 2018 20:36, "Cristina Voineag" <cristina.voineag at ymail.com>
wrote:

Multumesc foarte mult pentru sfaturi.
Am vazut de la inceput ca testul 29 are 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.

Rezultat valgrind:
$ valgrind ./tema1 1 test29.in
==8265== Memcheck, a memory error detector
==8265== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==8265== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==8265== Command: ./tema1 1 test29.in
==8265==
asdf
Comanda gresita.(tema1.c, 147): Nu s-a reusit executia.
: Success
==8265==
==8265== HEAP SUMMARY:
==8265==     in use at exit: 0 bytes in 0 blocks
==8265==   total heap usage: 7 allocs, 7 frees, 5,489 bytes allocated
==8265==
==8265== All heap blocks were freed -- no leaks are possible
==8265==
==8265== For counts of detected and suppressed errors, rerun with: -v
==8265== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

Rezultat gdb:
(gdb) run 1 test29.in
Starting program: /path/SO/Tema1/1-multi/util/tema1 1 test29.in
asdf
Comanda gresita.(tema1.c, 147): Nu s-a reusit executia.
: Success
[Inferior 1 (process 8286) exited with code 01]




On Sunday, March 11, 2018, 3:30:05 PM GMT+2, Mihai Barbulescu <
b12mihai at gmail.com> wrote:


Buna Cristina,

Cateva obiectii:

1. Makefile-ul de pe Linux tot nu imi place cum arata (nu pasa .h-uri
ca input la gcc)

2. Pentru Makefile-ul de pe Windows:
    - porneste de la cel de Linux si inlocuieste gcc cu cl
    - Vad ca folosesti /D_CRT_SECURE_NO_DEPRECATE asa cum e specificat aici
[2]
    - Nu uita ca in lumea cl.exe fata de gcc se foloseste standardul
de compilare C89. De exemplu, ceva care imi sare in ochi de pe
vmchecker, in functia ta main(), e ca declari variable in mijlocul
codului. C99 din gcc te lasa, C89 din Windows nu. Pe Linux, ca sa poti
investiga problemele raportate de cl poti face foarte frumos adaugand
la compilarea cu gcc optiunea  -std=c89 sau -ansi (o
activezi/dezactivezi in functie de cum nu iti este clar ce nu merge)

3. Ai testul 29 care isi ia segmentation fault, urmareste indicatiile
de debugging de aici [1] (note-tip-ul verde cu rezolvarea erorilor de
tip Segmentation Fault)


[1] https://ocw.cs.pub.ro/courses/so/teme/tema-1#punctare
[2] https://ocw.cs.pub.ro/courses/so/teme/general#build

2018-03-11 15:10 GMT+02:00 Cristina Voineag <cristina.voineag at ymail.com>:
> Aseara am reusit sa fac sa treaca toate testele dar Makefile-ul era
gresit.
> Pentru ca am refolosit surse de anul trecut, am omis faptul ca hash.c nu
> trebuie sa apara in Makefile-ul acestei teme. Am corectat azi Makefile-ul
> conform specificatiilor.
>
> Incepand rezolvarea pe windows, intampin urmatoarea problema: nu pot
compila
> de niciun fel sursele. Codul stiu ca este bun, pe Linux imi trec testele,
> dar chiar si cea mai simpla comanda: cl tema1.c, imi genereaza o gramada
de
> erori,  de exemplu, imi spune despre toate variabilele folosite ca sunt
> nedeclarate sau ca nu am ';' la sfarsitul liniilor. Am incercat toate
> variantele gasite in laborator sau pe internet dar situatia ramane la fel.
> Precizez ca folosec masina vituala windows de la SO.
>
> Multumesc anticipat,
> Cristina
>
> On Sunday, March 11, 2018, 12:31:36 PM GMT+2, Mihai Barbulescu
> <b12mihai at gmail.com> wrote:
>
>
> Pe lista publica acum ca să vadă și ceilalți studenți. Procedura ta de
> compilare e complet greșită, de aia ai prosopul de erori probabil și
local,
> te rog sa te uiți cu atenție în laborator 1 (1) cum se fac linkarile
versus
> ce ai tu aici
>
> gcc -Wall -fPIC tema1.c utils.h hashtable.h hash.h -c
> gcc -Wall -fPIC -o tema1 libhash.so
>
>
> NU TREBUIE sa regenerati libhash.so!!!!
>
> (1) https://ocw.cs.pub.ro/courses/so/laboratoare/laborator-01
>
> On Mar 10, 2018 19:58, "Cristina Voineag via so" <so at cursuri.cs.pub.ro>
> wrote:
>
> Salut,
>
> Nu reusesc sa rulez checker-ul nici pe masina virtuala linux, nici pe pe
> masina fizica.
>
> Eroare masina fizica: ./tema1: error while loading shared libraries:
> libhash.so: wrong ELF class: ELFCLASS32.
> Eroare masina vituala linux: ./tema1: cannot execute binary file: Exec
> format error.
>
> Masina virtuala linux: Am cautat pe net si am gasit ca ar putea fi o
> problema cu faptul ca rulez checker-ul direct dintr-un folder Shared. Prin
> urmare, am arhivat fisierele necesare checker-ului si le-am mutat intr-un
> folder ne-share-uit => in continuare nu pot rula.
>
> De asemenea, pentru verificarea coding style-ului cu checkpatch.pl, desi
am
> primit warning-uri si am corectat codul, nu primesc punctajulul aferent.
In
> plus, apare urmatorul output: No structs that should be const will be
found
> - file '/SO/Tema1/1-multi/checker/ const_structs.checkpatch': No such file
> or directory.
>
> Imi puteti da niste sugestii pentru rezolvarea acestor probleme ?
> Multumesc anticipat.
>
> ______________________________ _________________
> http://ocw.cs.pub.ro/courses/ so/info/lista-discutii




-- 
Cu stimă,
Mihai Bărbulescu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20180311/6bc8bf25/attachment.html>


More information about the so mailing list