Signal : SIGSEGV:Segmentation fault - pomocy
-
W programie mam 4 funkcje, w których początek jest taki sam. Polega na stroweniu obiektu QtPassword. Fragment
@
QtPassword oQtPassword(0);
iResult = oQtPassword.init();
if(iResult == 0)
{
iResult = oQtPassword.exec();
if(iResult == 0)
{
....
}
}
@
W pierwszej funkcji w instrukcji iResult = oQtPassword.exec(); dostaję błąd Signal : SIGSEGV:Segmentation fault, gdyż pozostałe trzy funkcje działają na debugu bez problemu. Początkowa konstrukcja wszystkich funkcji jest taka sama. Nie mam pojęcia dlaczego ten błąd mi leci. Macie może jakieś pomysły, albo czy kiedys spotkaliście się z podobnym problemem. Prosze o pomoc ;p -
W trybie debug OS nie pilnuje zakresów zmiennych, inicjalizacji itd. tak restrykcyjnie, jak w release. Powodów na sigsegv może być cała masa. Na pierwszty rzut podejrzewałbym nie zainicjowany wskaźnik (brak new blablabbla()), albo wykroczenie poza standardową C++ową tablicę.
-
Są tam wskaźniki, ale one są między dyrektywami. Pod windowsem wszystko się kompiluje bez problemów. Problem dopiero pojawia się pod linux [lubuntu]. To jest jedyne miejsce w programie gdzie leci błąd na debugu, ale jak juz normalnie uruchomię plugina to ta funkcja się powodzi, ale pozostale czasami się powodzą a czasami nie. Pod windowsem nie mialem takich problemów.
-
Z oczywistych rzeczy w kodzie na górze nie ma żadnych operacji porównania przy ifach, ale tu raczej podejrzewam, że w żywym kodzie wygląda inaczej. Poza tym ciężko cokolwiek powiedzieć, za mało danych.