[Résolu] [2011-30-11] OSX -- Exception at startup

Démarré par yoshi04, 30 Novembre 2011 à 08:07

0 Membres et 1 Invité sur ce sujet

Brew a récemment été mis à jour et il m'a été possible de suivre le guide rédigé par Guillaume.
Pour la compilation aucun problème a priori, l'exception apparait au lancement du jeu (pas de fenêtre, l'exception semble être attrapée avant).



commit 3ec48cc98830cd9817cf312648610dea3b7e73ca



Clements-MacBook-Pro:solarus clement$ zsdx
Nov 30 01:57:29 Clements-MacBook-Pro.local solarus[42190] <Error>: kCGErrorInvalidConnection: CGSGetCurrentCursorLocation: Invalid connection
Nov 30 01:57:29 Clements-MacBook-Pro.local solarus[42190] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
Nov 30 01:57:29 Clements-MacBook-Pro.local solarus[42190] <Error>: kCGErrorInvalidConnection: CGSGetCurrentCursorLocation: Invalid connection
Nov 30 01:57:29 Clements-MacBook-Pro.local solarus[42190] <Error>: kCGErrorInvalidConnection: CGSNewWindowWithOpaqueShape: Invalid connection
2011-11-30 01:57:29.596 solarus[42190:e03] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Error (1002) creating CGSWindow on line 263'
*** First throw call stack:
(
       0   CoreFoundation                      0x00007fff811ee286 __exceptionPreprocess + 198
       1   libobjc.A.dylib                     0x00007fff826b6d5e objc_exception_throw + 43
       2   CoreFoundation                      0x00007fff811ee0ba +[NSException raise:format:arguments:] + 106
       3   CoreFoundation                      0x00007fff811ee044 +[NSException raise:format:] + 116
       4   AppKit                              0x00007fff82e7f90b _NSCreateWindowWithOpaqueShape2 + 755
       5   AppKit                              0x00007fff82dcd224 -[NSWindow _commonAwake] + 1875
       6   AppKit                              0x00007fff82dcbebc -[NSWindow _commonInitFrame:styleMask:backing:defer:] + 1871
       7   AppKit                              0x00007fff82dcaf0a -[NSWindow _initContent:styleMask:backing:defer:contentView:] + 1502
       8   AppKit                              0x00007fff82dca8db -[NSWindow initWithContentRect:styleMask:backing:defer:] + 47
       9   libSDL-1.2.0.dylib                  0x00000001012e6126 -[SDL_QuartzWindow initWithContentRect:styleMask:backing:defer:] + 294
       10  libSDL-1.2.0.dylib                  0x00000001012e3ab6 QZ_SetVideoMode + 2102
       11  libSDL-1.2.0.dylib                  0x00000001012db4d8 SDL_SetVideoMode + 968
       12  solarus                             0x000000010110d4ce _ZN12VideoManager14set_video_modeENS_9VideoModeE + 186
       13  solarus                             0x000000010110d6d6 _ZN12VideoManager22set_initial_video_modeEv + 96
       14  solarus                             0x000000010110db5b _ZN12VideoManagerC2Eb + 631
       15  solarus                             0x000000010110dd1b _ZN12VideoManager10initializeEiPPc + 147
       16  solarus                             0x000000010110afc1 _ZN6System10initializeEiPPc + 45
       17  solarus                             0x00000001011465e4 _ZN7SolarusC2EiPPc + 20
       18  solarus                             0x00000001010bb4ea main + 26
       19  solarus                             0x00000001010bb4c4 start + 52
)
terminate called throwing an exception/usr/local/bin/zsdx: line 2: 42190 Abort trap: 6           /usr/local/bin/solarus /usr/local/share/solarus/zsdx




PS: Le dernier commit est de Thomas  :paf:

D'après ce que j'ai compris, Guillaume a aussi un problème lors du lancement du jeu. Le portage OS X ne fonctionne pas encore.
Chaîne Twitch : diffusion en direct de sessions de développement de Solarus, de création de jeux, de parties de jeux vidéo.
Chaîne YouTube : replays des diffusions en direct, tutos Solarus
Compte Twitter : pour être au courant des nouveautés
Chat Discord : pour discuter en direct avec la communauté Solarus

Oui, ce problème semble être le dernier obstacle avant de pouvoir lancer le jeu sur OS X.

Le problème vient du fait que la SDL ne s'initialise pas correctement avec le framework Cocoa car (si je me souviens bien) SDL_init() n'est pas appelé dans le main, qui est ce que le linker veut.

Un mec qui a eu le même bug:

"I made my program call SDL_Init() before it reached main(). In Linux, this works just fine, because it does not need SDL_main() as Mac OS* does. With a program compiled using SDL, when main() is found, it is replaced with SDL_main() in order to actualy use SDL (which I'm sure guys on #sdl @ irc.freenode.net can explain in more detail)."

http://www.idevgames.com/forums/thread-3795-post-37649.html#pid37649

Chercher "sdl kCGErrorInvalidConnection" sur Google retourne des pistes intéressantes.