Je suis nouveau dans la programmation C++. Je compile une application Windows qui compile ok avec juste quelques avertissements, mais quand je le lance, il ne semble même pas commencer et retourne une violation d'accès 3 secondes dans la course. Quand j'essaye de déboguer cela ne semble même pas entrer dans le code, donc je ne sais pas par où commencer à chercher le problème.Comment puis-je rechercher la source d'une violation d'accès survenant lors du lancement de l'application?
Voici les informations que j'ai pu récupérer du débogueur:
Building to ensure sources are up-to-date
Build succeeded
Selecting target:
Debug
Adding source dir: C:\Documents and Settings\Christian Ekiza\Mis documentos\My Dropbox\Private Files\coding\juego_pruebas_01\juego_pruebas_01\
Adding source dir: C:\Documents and Settings\Christian Ekiza\Mis documentos\My Dropbox\Private Files\coding\juego_pruebas_01\juego_pruebas_01\
Adding file: bin\Debug\juego_pruebas_01.exe
Starting debugger:
done
Registered new type: wxString
Registered new type: STL String
Registered new type: STL Vector
Setting breakpoints
Debugger name and version: GNU gdb 6.8
Child process PID: 3328
Program received signal SIGSEGV, Segmentation fault.
In ??()()
et c'est de la pile des appels
#0 00000000 0x000154e4 in ??() (??:??)
#1 00409198 __cmshared_create_or_grab() (../../../../gcc-4.4.1/libgcc/../gcc/config/i386/cygming-shared-data.c:140)
#2 00000000 0x0040131b in __gcc_register_frame() (??:??)
#3 00000000 0x0040a09b in register_frame_ctor() (??:??)
#4 00000000 0x00408f42 in __do_global_ctors() (??:??)
#5 00000000 0x00401095 in __mingw_CRTStartup() (??:??)
#6 00000000 0x00401148 in mainCRTStartup() (??:??)
et les registres CPU se terminent par une
'gs' register with a hex value '0x0'
Je ne sais pas vraiment par où commencer à chercher le problème. N'importe qui peut m'aider ou me diriger dans la bonne direction?
Note: J'utilise Code :: Blocks
Réduit le problème à un exemple de programme minimal. Si ce processus ne vous dit pas quel est le problème, publiez le code du programme exemple minimal complet. Aussi bien que les commandes de construction etc. Cheers & hth., –
J'utilisais 3 fichiers cpp + h, pour les bitmaps, un pour les sprites et un pour un moteur. Les 3 fichiers ont bien fonctionné dans un exemple de programme, mais le mien s'est écrasé. J'ai réduit l'exemple de programme pour simplement peindre un fichier BMP sur l'écran et vérifié qu'il fonctionne toujours.Ensuite, j'ai juste échangé le fichier BMP avec l'un de mes applications. Il s'est écrasé. Après avoir cherché la différence entre les bitmaps, il apparaît que le mien n'était pas dans le bon format, car il s'est écrasé. Après quelques essais et erreurs, j'ai réussi à l'empêcher de tomber en panne, mais l'image était entièrement noire. Puis j'ai trouvé que le BMP devait inclure une palette. – EKI
Maintenant, l'image peut être chargée correctement. Ensuite, je vais essayer de voir que toutes les images sont dans le bon format. Et commencez à ajouter chaque pièce à la fois. – EKI