SIGSEGV problem z detekcja

SIGSEGV problem z detekcja
simonsoft
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 159
0

No to powiedz mi co mam najlepiej zrobic zeby to zawsze szybko wykrywac takie bledy, jakie mam opcje

stivens
  • Rejestracja: dni
  • Ostatnio: dni
0

Nie sadze zeby odpowiedz "zainstaluj linuxa" Cie satysfakcjonowala

A "pisz w Kotlinie" pewnie jeszcze mniej

simonsoft
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 159
0

Moge zainstalowac linuksa, masz jakis filmik do tego moze?

stivens
  • Rejestracja: dni
  • Ostatnio: dni
0

Ehh, no ja po prostu instaluje. A szukac mozesz tak samo efektywnie jak ja.

Polecam Minta/Manjaro z Cinnamonem
I najlepiej na poczatku zainstaluj obok windowsa

tajny_agent
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1340
0

@simonsoft: Skopiowałem to co wrzuciłeś w pierwszym poście (wywaliłem tylko #include "vector_utils.h") i w VS17 nic mi nie wywala.

simonsoft
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 159
0

postawie wirtualna maszyne i potem jak tam valgrinda czy cos tam odpalac? w terminalu ta ?

stivens
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
valgrind --leak-check=yes --track-origins=yes ./nazwa_binarki

tylko najpierw zainstaluj

Kopiuj
sudo apt-get install valgrind
simonsoft
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 159
0
stivens napisał(a):
Kopiuj
valgrind --leak-check=yes --track-origins=yes ./nazwa_binarki

tylko najpierw zainstaluj

Kopiuj
sudo apt-get install valgrind

a jak mam to podzielone na pliki to ktore odpalam?
np. valgrind --leak-check=yes --track-origins=yes ./main.c ?

stivens
  • Rejestracja: dni
  • Ostatnio: dni
0

Skompiluj. Binarka jest tylko jedna

W ogole dlaczego piszesz w C?

simonsoft
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 159
0

Mowisz, zeby pisac w C++? Czy tak ogolnie?
Zadania na zaliczenie

simonsoft
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 159
0
simonsoft napisał(a):

Mowisz, zeby pisac w C++? Czy tak ogolnie?
Zadania na zaliczenie

Jeszcze ze 100 + zadan, takze mam nadzieje ze dotrzymasz towarzystwa :D

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
0

Jak już lecisz z linuksem to zacznij od address sanitizera

stivens
  • Rejestracja: dni
  • Ostatnio: dni
0
simonsoft napisał(a):
simonsoft napisał(a):

Mowisz, zeby pisac w C++? Czy tak ogolnie?
Zadania na zaliczenie

Jeszcze ze 100 + zadan, takze mam nadzieje ze dotrzymasz towarzystwa :D

title

simonsoft
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 159
0

Juz zainstalowalem, jaki memory sanitizer?

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
0

Dokładnie tego co poleciłem kilka stron temu :​)

simonsoft
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 159
0

Dobra zrobilem, cos dziwnego pokazuje ze "(" unexpected ale nie wiem co dalej? Histogram valgrindowalem.

https://imgur.com/a/KyzK5nk

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
0

Valgrind używasz na pliku wykonywalnym. Ale serio, zacznij od address sanitizera!

simonsoft
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 159
0
kq napisał(a):

Valgrind używasz na pliku wykonywalnym. Ale serio, zacznij od address sanitizera!

kurde ale jak go sie uzywa musze cos instalowac?

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
0

Nie, będziesz miał go gratis z gcc. Użycie: tak jak pokazałem wcześniej. Otwórz projekt w Qt Creatorze, dodaj te linie i tyle.

simonsoft
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 159
0

Nie kumam, mam QT Creatora na linuxa wrzucic, czy dodac linie do projektu na windowsie i potem skopiowac na linuksa?

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
0

No zainstaluj sobie Qt jak masz projekt w tym, i zrób to co powiedziałem. Alternatywnie do opcji kompilacji dodaj -ggdb -fsanitize=address -lasan

simonsoft
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 159
0

gdzie to dopisac to ggdb? Podaj prosze cala komende
Teraz mam funkcje undefined

screenshot-20190823213003.png

Po prawo film, ale nie chce mi sie ucinac juz

stivens
  • Rejestracja: dni
  • Ostatnio: dni
1

Musisz wszystkie pliki zrodlowe zalaczyc a nie tylko maina

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
0

Jakoś tak, ale pisane z palca:

Kopiuj
gcc vector_utils.c -ggdb -o vu.o
gcc vu.o main.c -ggdb -fsanitize=address -lasan -o main

Albo ściągnij sobie na ubuntu Qt i rób dokładnie tak jak na windowsie.

simonsoft
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 159
0

nie pyklo.

screenshot-20190823223525.png

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
1
Kopiuj
gcc vector_utils.c -ggdb -c -o vu.o
gcc vu.o main.c -ggdb -fsanitize=address -lasan -o main

Przepraszam, tak jak pisałem - pisane z palca. (różnica: -c w pierwszej linii)

Swoją drogą, na przyszłość ogarnij co tymi komendami tu robię, bo bardzo Ci się to przyda.

simonsoft
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 159
0

ogarne dzieki, tylko nie wiem co to vu.o, zrobilo sie i co dalej?

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
0

To skompilowany plik obiektowy z vector_utils.c. Takie rzeczy to do kursu/książki zapraszam :​)

simonsoft
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 159
0

screenshot-20190823230025.png

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
0

Dlaczego nie odpalisz pliku wykonywalnego main? Tak samo valgrind oczekuje pliku wykonywalnego, a nie źródeł. Ale już któryś raz powtarzam - zacznij od address sanitizera!

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.