[so] [Tema1][Linux][Windows] Comportament diferit la runtime

Mihai Barbulescu b12mihai at gmail.com
Mon Mar 13 14:57:08 EET 2017


Buna,

M-am uitat pe noua submisie a ta de pe vmchecker, vad niste buffer
overflow-uri (nu m-am uitat in cod, doar pe rularile Linux/Windows),
da-i si cu un valgrind inainte sa vezi pe unde dai p-afara cu memoria.
Nu alocarea e problema ci faptul ca undeva dai peste.

Atat la rularea cu GDB (apropo, baga cu cgdb e mai draguta interfata)
cat si la cea cu VALGRIND ai grija sa compilezi cu -g si sa stergi
orice alta -O optiune de optimizare pentru a prinde mai usor problema.
Si dai cu valgrind peste unul din testele care pica in Linux.

Alt hint pe care il vad e la 24) Test double... -> pare ca outputul
tau e bun dar ai bagat un funny character in forma de triunghi
p-acolo, nu stiu cum reusesti sa il bagi, poate nu pui \0 cand prntezi
stringu`, nu imi dau seama.

-marci nona megen jerry rachmaninoff  frederique vanny alyss carlee
betsey winona daphna cindie wynn jeanie
+marci nona megen jerry rachmaninoff frederique vanny alyss carlee
betsey winona daphna cindie wynn jeanie

Momentan astea sunt singurele idei acum.

2017-03-13 14:11 GMT+02:00 Adriana Dinca <dinca.adriana2 at gmail.com>:
> Buna Mihai,
>
> Pe vmchecker e urcata ultima arhiva care care la rulare din Cygwin imi
> genereaza outputuri diferite pt testul 2.
> Username-ul meu de cs este adriana.dinca.
>
> Cred ca acest comportament se datoreaza modului in care programul meu aloca
> memoria.
>
> Am incercat astazi sa reproduc problema si nu am mai reusit.
>
> In schimb obtin outputuri diferite la rularea aceluiasi executabil cu
> aceleasi argumente pentru un alt test.
>
> O sa rulez cu gdb sa vad daca gasesc problema.
>
> Multumesc pt raspuns.
>
> O zi faina,
> Adriana
>
>
>
>
>
>
> On 13 Mar 2017 7:59 a.m., "Mihai Barbulescu" <b12mihai at gmail.com> wrote:
>
> 2017-03-12 20:05 GMT+02:00 Adriana Dinca via so <so at cursuri.cs.pub.ro>:
>> Buna tuturor,
>>
>> Am urmatoarea problema atunci cand rulez test2.in.
>>
>> Pe Linux testul imi trece fara probleme.
>>
>> Pe Windows are urmatorul comportament:
>> - daca rulez executabilul din Cygwin si dau comenzile de la stdin obtin
>> outputul corect
>> - daca rulez executabilul din Cygwin si dau ca parametru fisier-ul cu
>> aceleasi comenzi nu imi afisaza nimic. (nici macar printf de pe primul
>> rand
>> al main-ului)
>> - daca rulez executabilul din Visual Studio Power Shell imi afisaza printf
>> de pe primul rand din main, insa crapa si cand citesc de la stdin sau din
>> fisier.
>>
>> Mentionez ca folosesc doar functii ANSI C si ca lucrez pe masina virtuala
>> pusa la dispozitie de catre echipa de SO.
>>
>> Daca modific continutul fisierului test2.in prin modificarea lungimii
>> cuvantului adaugat (fie < 8 caractere / > 8 caractere)  nu apar problemele
>> descrise mai sus.
>>
>> Am observat ca testul imi crapa daca adaug cuvinte care au lungimea egala
>> cu
>> 8 caractere.
>> Daca inlocuiesc "vilfredo" cu "aaaaaaaa" obtin acelasi comportament.
>> In schimb daca inlocuiesc cu "aaa" sau "aaaaaaaaaaaaa" merge fara
>> probleme.
>>
>> Daca ati mai intalnit aceasta problema sau aveti vreo idee din ce cauza
>> obtin acest comportament ciudat, v-as ruga sa imi dati de stire.
>>
>> Multumesc!
>>
>
> Buna,
>
> Nu am reusit inca sa ma prind de acest comportament ciudat al tau. Pe
> vmchecker e ultima versiune a codului care reproduce acest
> comportament?
> Eventual poti rula test2.in pas cu pas si sa ne dai aici pe lista tot
> output-ul + descrierea comportamentului? E OK, ca nu dai cod sursa.
> Asta ca sa stiu ce fac cand reproduc cu tema ta.
>
> De asemenea, pe Windows singurul scenariu valid este rularea din
> Cygwin, nu va stresati cu rulat din visual studio debug shell sau
> power shell sau windows cmd. Atat vmchecker cat si testele presupun
> rularea din cygwin.
>
> --
> Cu stimă,
> Mihai Bărbulescu
>
>



-- 
Cu stimă,
Mihai Bărbulescu


More information about the so mailing list