main.c (941B)
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <signal.h> 4 #include <execinfo.h> 5 #include <unistd.h> 6 #include <time.h> 7 8 #include "game.h" 9 #include "const.h" 10 #include "libs/raylib.h" 11 12 void handle_segfault(int signal) { 13 void *list[10]; 14 size_t size = backtrace(list, 10); 15 fprintf(stderr, "ERROR: signal %d:\n", signal); 16 backtrace_symbols_fd(list, size, STDERR_FILENO); 17 exit(1); 18 } 19 20 int main(void) { 21 printf("PID: %d\n", getpid()); 22 time_t t; 23 srand((unsigned) time(&t)); 24 struct sigaction sigint_action; 25 sigint_action.sa_handler = handle_segfault; 26 sigint_action.sa_flags = 0; 27 sigemptyset(&sigint_action.sa_mask); 28 sigaction(SIGSEGV, &sigint_action, NULL); 29 InitWindow(WINDOW_WIDTH, WINDOW_HEIGHT, "Freezo"); 30 game_t *game = game_create(); 31 SetTargetFPS(60); 32 SetExitKey(0); 33 while (!game->quit && !WindowShouldClose()) { 34 game_update(game); 35 game_draw(game); 36 } 37 CloseWindow(); 38 game_free(game); 39 return 0; 40 }