Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Allegro 5] Program crashuje

Ostatnio zmodyfikowano 2012-10-27 19:31
Autor Wiadomość
qest43
Temat założony przez niniejszego użytkownika
[Allegro 5] Program crashuje
» 2012-10-27 13:50:58
Napisałem program który w pewnych momentach crashuje. Jest to gra, program crashuje nawet od zwykłego stania. Tzn. wszystko działa poprawnie jednak w pewnym momencie następuję wyłączenie programu np. po 1m 30s. Gdy zostawiłem program włączony i wróciłem pisało że crah nastąpił po 6 minutach. W CODE::BLOCKS wyskakuje taka informacja:

TO POJAWIA SIĘ PRZY KAŻDYM URUCHAMIANIU:

Checking for existence: C:\Program Files\CodeBlocks\Nowy folder\gra\bin\Debug\gra.exe
Executing: "C:\Program Files\CodeBlocks/cb_console_runner.exe" "C:\Program Files\CodeBlocks\Nowy folder\gra\bin\Debug\gra.exe"  (in C:\Program Files\CodeBlocks\Nowy folder\gra\.)

TO DODATKOWO PO CRASHU:
Process terminated with status 3 (6 minutes, 30 seconds)

A w konsoli pojawia się:

Jaka może być przyczyna błędu ?
P-67644
crash
» 2012-10-27 14:15:03
Przyczyna może być różna. Jak dla mnie info, które podałeś, nic nie mówi o przyczynie. Taki sam błąd można spowodować na różne sposoby, bez kodu lipa.

Linia 189, plik: D:\Libraries\build\allegro\src\Allegro-5/0.x\src\misc\vector.c

http://www.pc-library.com/errors/error-code/3-0x3/
P-67645
qest43
Temat założony przez niniejszego użytkownika
» 2012-10-27 14:19:49
W konsoli jest podana jakaś ścieżka do folderu na dysku D który nawet nie istnieje, w ogóle wszystko mam zainstalowane na C więc skąd ta ścieżka. Kodu już trochę jest, i zrobiony jest w paru modułach więc to raczej jak by ktoś z was był zainteresowany to mogę mu pokazać to sobie obejrzy. Nie chciał bym go wstawiać tutaj publicznie.
P-67646
crash
» 2012-10-27 14:36:40
Prześledź krok po kroku swoije wszystkie pliki .hxx oraz .cxx, posprawdzaj sekcje include, dołączone biblioteki do linkera.
P-67648
xevuel
» 2012-10-27 14:39:42
Albo po prostu skompiluj u siebie Allegro ze źródeł.
P-67650
qest43
Temat założony przez niniejszego użytkownika
» 2012-10-27 14:55:40
Przepraszam za te pewnie banalne pytanie, ale czym jest kompilacja ze źródeł, są jakieś do tego poradniki, i czemu ma mi to pomóc rozwiązać problem ?

Obejrzałem wszystkie #include i zgadzają się:
#include <allegro5/allegro.h>
#include <allegro5/allegro_image.h>
#include <allegro5/allegro_native_dialog.h>

linker setting debug: allegro-5.0.7-monolith-mt-debug
relase: allegro-5.0.7-monolith-mt

Plików  .hxx oraz .cxx  (jeśli dobrze rozumiem polecenie) nie posiadam, w programie obecnie występują tylko pliki png.
P-67654
xevuel
» 2012-10-27 15:05:42
Jak skompilować ze źródeł? Po prostu pobierz source Allegro, i skompiluj, czy to do DLL, czy to do statycznego liba... W google jest pełno na ten temat.

czemu ma mi to pomóc rozwiązać problem ?
Ponieważ ścieżka, którą wypluwa nie pochodzi raczej z cmd, tylko ze skompilowanej biblioteki, zważywszy na to, że przecież dysku D nie posiadasz.
P-67656
qest43
Temat założony przez niniejszego użytkownika
» 2012-10-27 15:30:13
Na internecie nie widzę nic co mogło by mi pomóc w tej instalacji ze źródeł, mam folder pobrany
"Source code for all platforms in DOS/Windows friendly format." A co z tym dalej zrobić nie mam pojęcia.

Mam jednak inne rozwiązanie, nie wiem czy lepsze. Zacząłem //usuwać pewne linijki kodu sprawdzając  w którym momencie zacznie działać. No i doszedłem tym sposobem do tego fragmentu:
C/C++
void funkcja( tutaj cos odbiera )
{
    const float FPS = 60.0;
    int moveSpeed = speed, DIR = DOWN;
    float cameraPosition[ 2 ] = { 0, 0 };
   
    ALLEGRO_TIMER * timer = al_create_timer( 1.0 / FPS );
    ALLEGRO_EVENT_QUEUE * event_queue = al_create_event_queue();
    ALLEGRO_TRANSFORM camera;
    ALLEGRO_KEYBOARD_STATE key_state;
   
    al_register_event_source( event_queue, al_get_timer_event_source( timer ) );
    al_register_event_source( event_queue, al_get_keyboard_event_source() );
   
    // al_start_timer(timer); (po dodaniu tej linijki w komentarz program się nie wyłącza)
    {
        WYCIETY FRAGMENT KODU
    }
}

Widzicie w tym coś dziwnego ?

Pomyślałem jeszcze trochę i po wystartowaniu timera zapętliłem ten fragment kodu który timer obejmuje. Przedtem ten fragment wykonywał się tylko raz po czym wracał i znowu startował timer, tak w kółko. Czy powinienem to tak zostawić czy jednak nie rozwiązałem problemu a tylko go obszedłem ?
P-67669
« 1 » 2 3
  Strona 1 z 3 Następna strona