witam, o co chodzi z tym Program received signal SIGSEGV, Segmentation fault.
?
Program ci się wywalił
Proxima napisał(a):
Program ci się wywalił
tzn? da sie jakoś to naprawić czy coś?
Wstaw kod.
EDIT: Segmentation fault oznacza tyle, że coś pochrzaniłeś z pamięcią. Ale jest to tak szeroka kategoria błędów, że bez kodu trudno cokolwiek wyrokować.
Programistyczny napisał(a):
da sie jakoś to naprawić czy coś?
Wystarczy przestać pisać poza przydzielony obszar pamięci: tablice, wskaźniki.
O to, że program jest żle napisany i wyklada sie. Reszta to już wróżenie z fusów, ale ja pijam kawę z expresu, więc nie bawie się fusami.
kmph napisał(a):
Wstaw kod.
EDIT: Segmentation fault oznacza tyle, że coś pochrzaniłeś z pamięcią. Ale jest to tak szeroka kategoria błędów, że bez kodu trudno cokolwiek wyrokować.
kodu jest bardzo dużo ponad 100 plików .cpp i .h
dałoby radę z grubsza mniej więcej mi wyjaśnić gdzie może problem leżeć? lub jakos minimalnie nakierować
wątpię żeby komu kolewiek się chciało tyle kodu przeglądać
Wow.
Sam napisałeś tyle kodu, czy to czyjeś?
W takim razie odpal to z debuggerem i wtedy będzie widać gdzie się wywaliło. Nie zawsze to pomoże, ale istnieje szansa ;] Analogicznie mozna spróbować takich rzeczy jak valgrind.
dzieki wszystkim za pomoc mam małe pytanie w kodzie mam tak:
sigaction(SIGILL, &sa, nullptr); // illegal instruction
sigaction(SIGSEGV, &sa, nullptr); // segmentation fault
sigaction(SIGFPE, &sa, nullptr); // floating-point exception
signal(SIGILL, SIG_DFL); // illegal instruction
signal(SIGSEGV, SIG_DFL); // segmentation fault
signal(SIGFPE, SIG_DFL); // floating-point exception
to jest ok czy coś powinienem poprawić?
To za mało, może np sa
niepoprawnie wypełniłeś.
_13th_Dragon napisał(a):
To za mało, może np
sa
niepoprawnie wypełniłeś.
struct sigaction sa;
sa.sa_sigaction = &_SigHandler;
sigemptyset (&sa.sa_mask);
sa.sa_flags = SA_RESTART | SA_SIGINFO;
Może wypełnij najpierw całość zerami, przez memset
lub zainicjalizuj każde pole struktury.