przeciez zrobilem wszystko po kolei nie kumam stary :((
Jak odpalic plik wykonywalny teraz?
SIGSEGV problem z detekcja
- Rejestracja: dni
- Ostatnio: dni
- Postów: 159
- Rejestracja: dni
- Ostatnio: dni
simonsoft napisał(a):
ogarne dzieki, tylko nie wiem co to vu.o, zrobilo sie i co dalej?
https://pl.m.wikipedia.org/wiki/Plik_relokowalny
main to binarka a main.c zrodlo - nie po to kompilujesz program zeby pozniej go nie odpalac nie? ;)
- Rejestracja: dni
- Ostatnio: dni
Wynik jest dobry tak btw?
valgrinda odpal na binarce kompilowanej bez asana
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Szczecin
kq napisał(a):
Qt Creator to moje podstawowe IDE do C++ :)
Masz dostęp do danych testowych? Nie odpalałem, ale ten kod wygląda dobrze. Zamiast bawić się z valgrindem, odpal memory sanitizera (
-lasando linkera,-fsanitize=addressdo kompilatora) i zobacz czy nie narzeka dla przypadków skrajnych - 100, 101 elementów itd.
Zwróć uwagę na ten fragment:
kq napisał(a):
odpal memory sanitizera (
-lasando linkera,-fsanitize=addressdo kompilatora) i zobacz czy nie narzeka dla przypadków skrajnych - 100, 101 elementów itd.
Testujesz przypadek idealny i działa. Testowarka zapewne ma pełno przypadków granicznych, na których kod się wywala.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 159
Dobra jest progres bo wywalilo mi tone rzeczy, jak to postepowac dalej?
gcc vector_utils.c -ggdb -c -o vu.o
gcc main.c -ggdb -c -o m.o

- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Szczecin
gcc main.c -ggdb -c -o m.o
A to skąd? Kompiluj i linkuj od razu. Po prostu wywal -fsanitize=address i -lasan jak nie chcesz address sanitizera :)
A błąd ze screena - nie wiem, wygląda jakbyś próbował plik nietekstowy kompilować.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 159
Nie wiem jak dodac, mozesz mi napisac co mam wpisac prosze? Nie kumam tego
- Rejestracja: dni
- Ostatnio: dni
gcc vector_utils.c -ggdb -c -o vu.o
gcc vu.o main.c -ggdb -o main
I jeszcze cat main.c bo wyglada ze go nadpisales
- Rejestracja: dni
- Ostatnio: dni
- Postów: 159
stivens napisał(a):
gcc vector_utils.c -ggdb -c -o vu.o
gcc vu.o main.c -ggdb -o mainI jeszcze cat main.c bo wyglada ze go nadpisales
ten sam blad wywalilo co screena wrzucilem
- Rejestracja: dni
- Ostatnio: dni
To binarka
Jak wpiszesz objdump -d main.c to zobaczysz kod assemblera - chyba to nie miejsce na niego nie? ;)
Skopiuj main.c jeszcze raz
- Rejestracja: dni
- Ostatnio: dni
valgrind
- Rejestracja: dni
- Ostatnio: dni
- Postów: 159
stivens napisał(a):
valgrind
valgrind --leak-check=yes --track-origins=yes ./main.c ??
czy
gcc vu.o main.c -ggdb -fsanitize=address -lasan -o -c main ?
- Rejestracja: dni
- Ostatnio: dni
valgrind --leak-check=yes --track-origins=yes ./main
Przy czym jak nie wywolasz seg faulta to valgrind moze sypnac tona ostrzezen a moze nic ciekawego nie pokazac i tak bo to prosty kod
Czemu robisz arytmetyke wskaznikow zamiast dostepu tablicowego? Ja z tego powodu na kod nawet nie patrze
- Rejestracja: dni
- Ostatnio: dni
- Postów: 159
stivens napisał(a):
valgrind --leak-check=yes --track-origins=yes
./mainPrzy czym jak nie wywolasz seg faulta to valgrind moze sypnac tona ostrzezen a moze nic ciekawego nie pokazac i tak bo to prosty kod
Czemu robisz arytmetyke wskaznikow zamiast dostepu tablicowego? Ja z tego powodu na kod nawet nie patrze
bo mam taki wymog, w sumie nic takiego nie pokazalo, przynajmnie nic co mi pomoze wykryc gdzie jest blad...

- Rejestracja: dni
- Ostatnio: dni
Nie no to i tak mowilo ze 0 bledow. Musisz segfaulta striggerowac
- Rejestracja: dni
- Ostatnio: dni
- Postów: 159
stivens napisał(a):
Nie no to i tak mowilo ze 0 bledow. Musisz segfaulta striggerowac
Czyli co konkretnie? :P
- Rejestracja: dni
- Ostatnio: dni
W ogole to jest ten histogram nie? Zacznijmy od tego pierwszego programu bez floatow...
- Rejestracja: dni
- Ostatnio: dni
- Postów: 159
stivens napisał(a):
W ogole to jest ten histogram nie? Zacznijmy od tego pierwszego programu bez floatow...
Spoko, ale to juz jutro, ide zaraz spac a jutr znowu bede caly dzien siedzial to jak bedziesz to fajnie. Pozdrawiam
- Rejestracja: dni
- Ostatnio: dni
- Postów: 159
Dobra to jak strigerowac tego segfaulta, co robic?
- Rejestracja: dni
- Ostatnio: dni
Testuj przypadki brzegowe. 0 liczb w inpucie, 101 liczb itd
Przetestuj pierwszy program valgrindem bo testowales drugi
- Rejestracja: dni
- Ostatnio: dni
- Postów: 159
stivens napisał(a):
Testuj przypadki brzegowe. 0 liczb w inpucie, 101 liczb itd
Przetestuj pierwszy program valgrindem bo testowales drugi
Mozesz na ta strone wejsc?
http://pp.iis.p.lodz.pl/reports/subsp/16/2112-2112/462/360583-e957c1b8cab84e57/index.html
- Rejestracja: dni
- Ostatnio: dni
- Postów: 159
stivens napisał(a):
Testuj przypadki brzegowe. 0 liczb w inpucie, 101 liczb itd
Przetestuj pierwszy program valgrindem bo testowales drugi
ok zaraz zaczne
- Rejestracja: dni
- Ostatnio: dni
Wow, przeciez sprawdzarka Ci pokazuje tresc testow...
Wywołanie:
./main 1 <-- seg fault
- Rejestracja: dni
- Ostatnio: dni
- Postów: 159
stivens napisał(a):
Wow, przeciez sprawdzarka Ci pokazuje tresc testow...
Wywołanie:
./main 1 <-- seg fault
co to znaczy to ./main 1 , ze wywoluje program z 1 parametrem ktory wynosi 1?
Wlasnie wiem, ze tego jest tutaj informacji od cholery, a ja nie wiem jak to optymalnie wykorzystac zeby sprawnie dzialac
- Rejestracja: dni
- Ostatnio: dni
./main 1 <-- seg fault
Chyba zle zrozumialem
-8 10 10 -7 9 8 -5 0
-2 8 -10 -1 6 -3 0 -4
0
1 7 4 5 1 7 5 0 5 -4 2 -2 8 9 -2 4 3 -4 4 -5
Ten input powoduje seg faulta





