Błąd podczas działania programu - OpenGL

0

Witam!
Napisałem prostą grę w C++ z użyciem OpenGL, ale borykam się z pewnymi technicznymi problemami w ostatnim czasie. Gdy w MS Visual Studio buduje na nowo projekt i uruchamiam program w trybie debuggera, to działa poprawnie. Gdy chcę normalnie uruchomić program dostaję komunikat już na samym początku "Program ..... przestał działać". Niektóre, wcześniejsze wersje tego projektu czasami też wywalają ten błąd, a czasami uruchamiają się z normalnie. Gdy przeniosę nawet tę wersję projektu, która działa poprawnie, do innej lokalizacji, też zaczyna pojawiąć się ten sam błąd. Naprawdę nie mogę wyczuć od czego to zależy, bo wydaje się to zupełnie losowe. Czy przyczyna w ogóle może leżeć gdzie indziej niż w samym kodzie programu? Jeżeli byłyby błędy w kodzie to czy jest w ogóle możliwe, że raz program działa poprawnie, a raz nie?

1

"C++ [...] program przestaje dzialac [...] losowy", dziwne...
Sprawdz w 17 linijce, chyba nie inicjalizujesz pointera nullem.

1

Jeżeli byłyby błędy w kodzie to czy jest w ogóle możliwe, że raz program działa poprawnie, a raz nie?

Race condition, use-after-free... wiele czynników. Może nawet sam mechanizm ASLR to powoduje; tego nie wiemy.

0

@davidcpp teoretycznie to moze być wpływ promieniowania kosmicznego. W praktyce masz błędy w kodzie. Szklana kula mówi mi że wychodzisz gdzieś poza zaalokowane obszary pamięci albo czytasz z niezainicjalizowanej pamięci albo robisz jakieś null pointery...

0

Po prostu dziwi mnie to, że sama zmiana lokalizacji projektu mogła to wywołać. Dodatkowo, ten sam program normalne uruchamia się, a gdy uruchamiam go za jakiś czas nagle jest coś nie tak. Dobra, przejrzę kod, a pytałem się bo myślałem że problem leży gdzieś indziej, a nie chciałem bez potrzeby analizować kodu źródłowego.

0

@davidcpp zdradzę ci sekret: problem zawsze* jest w kodzie. A jeśli jesteś pewien że go tam nie ma, to znaczy że na pewno tam jest.
Poza tym błędy w programie, szczególnie te związane z pamięcią, właśnie tak sie objawiają że czasem pomyka jak rącza gazela a czasem nie.

  • sytuacje kiedy winna jest biblioteka, kompilator, komputer, OS to jest taki mały margines że zwykle nie warto go brać pod uwagę
0

Dzięki, już znalazłem błąd. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1