|
al_dtor_list is NULL, crash in al_create_timer |
Edgar Reynaldo
Major Reynaldo
May 2007
|
Hello guys. I'm getting a crash in my ManyMouse program. This time I've built it with MSVS 2015 and the Allegro 5 Nuget package. It crashes on startup when I try to create a timer in al_create_timer. Here's the backtrace : # allegro-debug-5.2.dll!_al_mutex_lock(_AL_MUTEX * m) Line 59 # allegro-debug-5.2.dll!_al_register_destructor(_AL_DTOR_LIST * dtors, const char* # name , void * object, void (void *) * func) Line 166 # allegro-debug-5.2.dll!al_create_timer(double speed_secs) Line 235 # ManyMouseRawInputTest.exe!RawInputHandler::SetupWindows() Line 435 # ManyMouseRawInputTest.exe!main(int argc, char * * argv) Line 59 And here's the value of the local variables in frame 2 (al_create_timer line 235). Notice that al_dtor_list is NULL. + _al_dtor_list 0x00000000 <NULL> _AL_DTOR_LIST * speed_secs 0.016666666666666666 double + timer 0x0074a230 {es={__pad=0x0074a230 {7757888, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...} } ...} ALLEGRO_TIMER * timer->counter 0.00000000000000000 double timer->speed_secs 0.016666666666666666 double Here's line 235 of al_create_timer : 228 if (timer) {
229 _al_event_source_init(&timer->es);
230 timer->started = false;
231 timer->count = 0;
232 timer->speed_secs = speed_secs;
233 timer->counter = 0;
234
235 _al_register_destructor(_al_dtor_list, "timer", timer,
236 (void (*)(void *)) al_destroy_timer);
237 }
The exact same program compiled with MinGW 4.8.1 does not crash there. So it may be something to do with dlls? But I don't know what, because al_install_system is succeeding, otherwise the program would quit before it got there. I can't get a simple test program to fail in the same way. This code works and exits with return code 0. 1#include "allegro5/allegro.h"
2
3int main(int argc, char** argv) {
4
5 if (!al_install_system(ALLEGRO_VERSION_INT, atexit)) {
6 return 1;
7 }
8
9 ALLEGRO_TIMER* timer = al_create_timer(1.0 / 60.0);
10
11 if (!timer) {
12 return 2;
13 }
14
15
16 return 0;
17}
EDIT
Any idea why the same program compiled with MSVS 2015 would crash while one compiled with MinGW would work?
My Website! | EAGLE GUI Library Demos | My Deviant Art Gallery | Spiraloid Preview | A4 FontMaker | Skyline! (Missile Defense) Eagle and Allegro 5 binaries | Older Allegro 4 and 5 binaries | Allegro 5 compile guide |
|