Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/12/2024, à 19:21

Antoine79

Erreurs de segmentation avec des projets personnels ( C++ et SDL 2 )

Bonjour,
J'ai un souci depuis plusieurs mois avec gdb il me semble. J' utilise principalement l' IDE Codelite avec g++ (donc du code en C++) et gdb pour développer un jeu (casse briques) et parfois (cela arrive avec d'autres projets C++) lorsque j'exécute mon programme en mode Debug (avec les options : -ggdb3;-O0 // et les options constantes pour mes projets, que ce soit pour Release ou Debug: -std=gnu++2a;-Wall;-Wextra;-pedantic;$(shell sdl2-config --cflags);-Wconversion ) et que gdb tombe sur une erreur de segmentation (SIGSEGV) ou une assert() / assertion (#include <cassert> ) qui échoue les clics de ma souris ne répondent plus (je peux néanmoins voir le curseur bouger et les touches du clavier répondent, notamment la combinaison de touches SHIFT + F5 pour stopper gdb sous Codelite, ce qui m' aide bien). Comme je sais que gdb peut s' utiliser dans un terminal ou en ligne de commande, j'ai tenté de l'utiliser ainsi. Donc je copie le binaire généré ('game') dans un répertoire test de mon casse briques et je lance 'gdb game' dans un terminal puis je tape run. Le jeu se lance (mais ne plante pas) je navigue jusqu' à la scène qui pose problème (une SIGSEGV) et j'ai le même problème qu'avec Codelite, les clics de souris de répondent plus je fais ALT + TAB pour revenir au terminal et je tape exit. J'ai eu des problèmes similaires par le passé (en fait seulement depuis que j'ai installé Xubuntu 24.04.1 à la toute fin août. Avant quand j'avais une erreur de segmentation pour par exemple une texture mal chargée, je voyais la pile d' appel des fonctions dans une fenêtre de Codelite et j' avais la possibilité de voir où je devais corriger mon erreur avec une autre fenêtre qui permettait d' espionner la valeur des variables de mon code et au moment de l'erreur de segmentation gdb me montrait la ligne 'coupable'. J'ai posté plus loin un extrait du texte du terminal lorsque je lance gdb dans celui-ci. J'ai bien fait quelques recherches sur internet (Google et Qwant) mais je n'ai rien trouvé.
Quelques infos supplémentaires:
- J'utilise Xubuntu 24.04.1 (installation fraîche depuis début décembre) avec une partition racine et une partition /home sur SSD mais tous mes projets se trouvent sur une partition de disque dur.
- J'utilise g++ et gdb je n'utilise pas clang jusqu'ici mais si vous me demandez d'essayer je veux bien faire un test.
- J'ai une carte mère MSI Gaming X470 Plus Max avec un Ryzen 5700X 3D et une carte NVidia RTX 2070.
- Quand je tape 'cat /proc/version' dans le terminal j'ai ça:

Linux version 6.8.0-50-generic (buildd@lcy02-amd64-020) (x86_64-linux-gnu-gcc-13 (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0, GNU ld (GNU Binutils for Ubuntu) 2.42) #51-Ubuntu SMP PREEMPT_DYNAMIC Sat Nov  9 17:58:29 UTC 2024

- J' utilise g++-14 comme compilateur depuis les dépôts d'ubuntu (pas ceux du ppa 'toolchain' ).
- Les problèmes décrits ci-dessus arrivent (il me semble) exclusivement lorsque je lie mon programme à la SDL 2 (en version 2.30.0 d'après 'sdl2-config --version' installé depuis les dépôts comme SDL2_image SDL2_ttf ou SDL2_mixer ) ; en mode console ou avec par exemple wxWidgets je n'ai pas rencontré ce genre de problème. A noter que lorsque j'utilise les assertions de la SDL 2 ( #include "SDL_assert.h" ) et que l'assertion échoue le problème survient comme avec les assertions standards (excepté qu'avec les assertions de la SDL2 il y a des boutons (abandonner, réessayer, etc ...) j'avais essayé un temps avec celles-ci mais j'ai abandonné.
- Voici la sortie console de gdb dans mon terminal:

GNU gdb (Ubuntu 15.0.50.20240403-0ubuntu1) 15.0.50.20240403-git
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from game...
(gdb) run
Starting program: /* j'ai éffacé le chemin vers le binaire 'game' ici pour poster sur le forum */ /game 

This GDB supports auto-downloading debuginfo from the following URLs:
  <https://debuginfod.ubuntu.com>
Enable debuginfod for this session? (y or [n]) n
Debuginfod has been disabled.
To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libpulse.so.0
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libopusfile.so.0
warning: could not find '.gnu_debugaltlink' file for /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-16.1.so
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libbrotlidec.so.1
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libglib-2.0.so.0
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libpulse-simple.so.0
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libjack.so.0
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libgmodule-2.0.so.0
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libgobject-2.0.so.0
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libbrotlicommon.so.1
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libtinfo.so.6
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libcap.so.2
[New Thread 0x7ffff54006c0 (LWP 7402)]
[New Thread 0x7ffff55ff6c0 (LWP 7403)]
[New Thread 0x7ffff0a006c0 (LWP 7404)]

Thread 1 "game" received signal SIGSEGV, Segmentation fault.
0x00007ffff7e34836 in ?? () from /lib/x86_64-linux-gnu/libSDL2-2.0.so.0
(gdb) exit
A debugging session is active.

	Inferior 1 [process 7399] will be killed.

Quit anyway? (y or n) y

Merci de m' avoir lu jusqu' ici.

Dernière modification par Antoine79 (Le 20/12/2024, à 17:33)

Hors ligne

#2 Le 20/12/2024, à 19:02

Antoine79

Re : Erreurs de segmentation avec des projets personnels ( C++ et SDL 2 )

Bonsoir,
J' ai du nouveau...
J' ai procédé au test suivant sur mon installation de xubuntu:
Avec virtualbox j'ai créé une machine virtuelle avec Ubuntu 24.04.1 (avec l' iso suivant: ubuntu-24.04.1-desktop-amd64.iso ), donc avec un Ubuntu ordinaire. J'ai mis à jour le nouvel OS installé par sudo apt update puis sudo apt upgrade ; puis j'ai installé le disque de sessions des invités téléchargé sur le site virtualbox d'oracle puis monté l'iso dans la configuration de la machine virtuelle.
Ensuite j'ai tapé la commande suivante dans un terminal de la machine virtuelle créée:

sudo usermod -a -G vboxsf

Ensuite je monte le répertoire de mes projets qui sont sur disque dur dans le répertoire '/media/antoine/mountedProjects' dans la machine virtuelle. En ayant pris soin d' installer les paquets de la SDL2 , build-essential, g++-14, gcc-14 et codelite dans la machine virtuelle je tente une session de debuggage avec gdb avec une assert( false ); bien placée qui fait planter le clic de souris sous xubuntu, mais par contre dans la machine virtuelle nouvellement créée le clic de souris fonctionne , je peux me balader dans la call stack et surveiller les valeurs locales dans l' interface de codelite (j'ai vérifié une seconde fois pour être sur, ça marche pas de freeze/paralysie du clic de souris).
Le bug expliqué sur mon message/post précédent vient peut-être du bureau XFCE ?
Avez-vous des suggestions à me faire ? (il faut que je teste clang et son debugger sous xubuntu pour voir, ça je ne l' ai pas encore fait).
Merci

Hors ligne

#3 Le 20/12/2024, à 20:00

lann

Re : Erreurs de segmentation avec des projets personnels ( C++ et SDL 2 )

Si tu avais compiler en mode debug (-g), on aurait pu en savoir plus ou ça plantait : faire where dans gdb pour avoir les appels aux fonctions.


<Modéré>

Hors ligne

#4 Le 20/12/2024, à 21:39

Antoine79

Re : Erreurs de segmentation avec des projets personnels ( C++ et SDL 2 )

Bonjour Iann, smile
Ce n'est pas un problème avec mon programme je pense. Et dans mon premier message/post j'ai écrit ceci :

Antoine79 a écrit :

lorsque j'exécute mon programme en mode Debug (avec les options : -ggdb3;-O0 // et les options constantes pour mes projets, que ce soit pour Release ou Debug: -std=gnu++2a;-Wall;-Wextra;-pedantic;$(shell sdl2-config --cflags);-Wconversion )

L'option -ggdb3 est une option de débogage qui permet d'avoir plus de symboles de débogage (ce qui est utilise lorsque l'on a des structures imbriquées, car l'option -g ne permet pas de voir le nom des variables des structures imbriquées, c'est une histoire de récursion de variables dans les paramètres passés aux fonctions).

Le problème auquel je fais face (uniquement avec xubuntu), c'est qu'une fois que j'ai une erreur de segmentation ou une assert() qui 'claque' comme on dit, je ne peux plus utiliser codelite au travers de son interface avec gdb, le clic gauche dans mon système d' exploitation ne répond plus (les raccourcis clavier marchent eux, heureusement), je suis obligé de faire SHIFT+F5 pour arrêter le debugger quand codelite a le focus au lieu de cliquer sur "Debugger" dans le menu et cliquer sur "Stop Debugger". Idem en lançant l' exécutable généré avec gdb dans un terminal, une fois l'assert qui échoue volontairement accédée,...

assert( false );

  ... le clic gauche de ma souris ne répond plus. J'ai essayé de cliquer sur la barre horizontale en haut de l' écran par exemple sur l'heure et la date affichés, mais le calendrier ne s'affiche pas (les jours du mois en cours dans une mini fenêtre) alors que d'habitude si.

P.S: j'ajoute que pour terminer la session de débogage buguée je fais ALT+TAB pour rebasculer sur le terminal depuis la fenêtre ouverte par mon programme utilisant la SDL 2 et je tape dans le terminal 'exit' puis j'appuie sur 'y' pour confirmer la sortie de gdb.

Dernière modification par Antoine79 (Le 20/12/2024, à 21:44)

Hors ligne

#5 Le 21/12/2024, à 22:17

lann

Re : Erreurs de segmentation avec des projets personnels ( C++ et SDL 2 )

Je ne connais pas codelite.
Pourquoi ne lances tu pas gdb en ligne de commande ?


<Modéré>

Hors ligne

#6 Hier à 08:20

Antoine79

Re : Erreurs de segmentation avec des projets personnels ( C++ et SDL 2 )

Bonjour,
Dans mon premier message il est écrit que j'ai essayé de lancer l'exécutable généré par g++-14 'game' dans un terminal avec gdb. As-tu lu mon premier message ? J'ai d'ailleurs collé dans des balises 'code' toute la sortie console à ce moment là. smile

A un moment donné, je me suis demandé si ce n'est pas le driver NVidia (avec le pilote en version 550) qui était la cause de ce gel du clic de la souris mais sur mon ordinateur portable compaq presario v6000 (Core 2 Duo T5600 et Intel GMA 950 avec xubuntu 24.04.1, donc pas de GPU NVidia), j' ai le même problème. J' ai plutôt l' impression qu'il s' agit d'un bug avec le bureau XFCE, car avec la machine virtuelle avec un Ubuntu ordinaire 24.04.1 je ne rencontre pas de problème de gel du clic de la souris.
J'ai fais des recherches sur le forum du site www.xfce.org hier, j'ai cru trouver à certains moments une solution à mon problème, mais non, en fait.

Dernière modification par Antoine79 (Hier à 08:21)

Hors ligne

#7 Hier à 10:28

lann

Re : Erreurs de segmentation avec des projets personnels ( C++ et SDL 2 )

Un petit

where

à la place

exit

aurait été sympa :

Thread 1 "game" received signal SIGSEGV, Segmentation fault.
0x00007ffff7e34836 in ?? () from /lib/x86_64-linux-gnu/libSDL2-2.0.so.0
(gdb) exit
Antoine79 a écrit :

As-tu lu mon premier message ?

Je l'ai lu mais tu l'as modifié car la première fois, il y avait

(No debugging symbols found 

<Modéré>

Hors ligne

#8 Hier à 12:17

Antoine79

Re : Erreurs de segmentation avec des projets personnels ( C++ et SDL 2 )

Voici le résumé de gdb dans le terminal avec la commande 'where' utilisée:

antoine@antoine-MS-7B79:/media/antoine/projetsLinux/projects/games/breakout4/workingDirectory/debugWorkingDir/Breakout4_1280$ gdb game
GNU gdb (Ubuntu 15.0.50.20240403-0ubuntu1) 15.0.50.20240403-git
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from game...
(gdb) run
Starting program: /media/antoine/projetsLinux/projects/games/breakout4/workingDirectory/debugWorkingDir/Breakout4_1280/game 

This GDB supports auto-downloading debuginfo from the following URLs:
  <https://debuginfod.ubuntu.com>
Enable debuginfod for this session? (y or [n]) n
Debuginfod has been disabled.
To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libpulse.so.0
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libopusfile.so.0
warning: could not find '.gnu_debugaltlink' file for /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-16.1.so
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libbrotlidec.so.1
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libglib-2.0.so.0
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libpulse-simple.so.0
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libjack.so.0
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libgmodule-2.0.so.0
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libgobject-2.0.so.0
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libbrotlicommon.so.1
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libtinfo.so.6
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libcap.so.2
[New Thread 0x7ffff54006c0 (LWP 21058)]
[New Thread 0x7ffff55ff6c0 (LWP 21059)]
[New Thread 0x7ffff0a006c0 (LWP 21060)]
game: /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/onePlayerInGame/sources/bonusesShop/shopInterface.cpp:116: void onePlayerShop::ShopInterface::createBuyingTexts(Essentials&, const PlayerData&): Assertion `false' failed.

Thread 1 "game" received signal SIGABRT, Aborted.
__pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)
    at ./nptl/pthread_kill.c:44
warning: 44	./nptl/pthread_kill.c: Aucun fichier ou dossier de ce nom
(gdb) where
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)
    at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=<optimized out>)
    at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6)
    at ./nptl/pthread_kill.c:89
#3  0x00007ffff764526e in __GI_raise (sig=sig@entry=6)
    at ../sysdeps/posix/raise.c:26
#4  0x00007ffff76288ff in __GI_abort () at ./stdlib/abort.c:79
#5  0x00007ffff762881b in __assert_fail_base
    (fmt=0x7ffff77d01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x555555688d31 "false", file=file@entry=0x555555688ca8 "/media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/onePlayerInGame/sources/bonusesShop/shopInterface.cpp", line=line@entry=116, function=function@entry=0x555555688c50 "void onePlayerShop::ShopInterface::createBuyingTexts(Essentials&, const PlayerData&)") at ./assert/assert.c:94
#6  0x00007ffff763b507 in __assert_fail
    (assertion=0x555555688d31 "false", file=0x555555688ca8 "/media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/onePlayerInGame/sources/bonusesShop/shopInterface.cpp", line=116, function=0x555555688c50 "void onePlayerShop::ShopInterface::createBuyingTexts(Essentials&, const PlayerData&)") at ./assert/assert.c:103
#7  0x00005555555e46f3 in onePlayerShop::ShopInterface::createBuyingTexts
--Type <RET> for more, q to quit, c to continue without paging--c
    (this=0x7fffffffc090, essentials=..., playerData=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/onePlayerInGame/sources/bonusesShop/shopInterface.cpp:116
#8  0x00005555555e3be6 in onePlayerShop::ShopInterface::ShopInterface (this=0x7fffffffc090, essentials=..., playerData=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/onePlayerInGame/sources/bonusesShop/shopInterface.cpp:38
#9  0x00005555555d9fa7 in onePlayerShop::context (essentials=..., playerData=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/onePlayerInGame/sources/bonusesShop/shopContext.cpp:18
#10 0x0000555555566236 in onePlGame::raceMainMenu::goToShop (essentials=..., playerData=..., interface=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/race/raceMainMenuContext.cpp:132
#11 0x0000555555565ee4 in onePlGame::raceMainMenu::redirectUser (essentials=..., playerData=..., interface=..., quitMainMenu=@0x7fffffffc424: false)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/race/raceMainMenuContext.cpp:68
#12 0x0000555555565dc1 in onePlGame::raceMainMenu::mainLoop (essentials=..., interface=..., playerData=..., quitMainMenu=false) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/race/raceMainMenuContext.cpp:46
#13 0x0000555555565b30 in onePlGame::raceMainMenu::context (essentials=..., skillLevel=1, raceType=0) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/race/raceMainMenuContext.cpp:27
#14 0x0000555555560152 in campaignChoice::runShopRace (essentials=..., skillLevel=1, interface=..., quitCampChoice=@0x7fffffffc76f: true)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/campaignChoice/campaignChoiceContext.cpp:41
#15 0x00005555555600d5 in campaignChoice::redirectPlayer (essentials=..., skillLevel=1, interface=..., quitCampChoice=@0x7fffffffc76f: true)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/campaignChoice/campaignChoiceContext.cpp:31
#16 0x000055555555ffe4 in campaignChoice::mainContext (essentials=..., skillLevel=1, quitWholeMenus=@0x7fffffffca7f: false) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/campaignChoice/campaignChoiceContext.cpp:19
#17 0x0000555555562dc9 in mainMenu::onePlayerRedirect (essentials=..., chosenSkillLevel=@0x7fffffffca80: 1, chosenMenuItem=@0x7fffffffca84: 0, quitWholeMenus=@0x7fffffffca7f: false)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/mainMenu/mainMenu.cpp:107
#18 0x0000555555562d35 in mainMenu::onePlayerGameSteps (essentials=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/mainMenu/mainMenu.cpp:98
#19 0x0000555555562cbd in mainMenu::runOnePlayerGame (essentials=..., gameButton=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/mainMenu/mainMenu.cpp:87
#20 0x0000555555562a97 in mainMenu::mainLoop (essentials=..., buttons=..., quitMenu=@0x7fffffffcb34: false, background=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/mainMenu/mainMenu.cpp:51
#21 0x0000555555562884 in mainMenu::menu (essentials=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/mainMenu/mainMenu.cpp:39
#22 0x000055555556514c in cntxt::miniScreen::changeScreenLayout (essentials=..., quitMiniScreen=@0x7fffffffcdef: true, isFullScreen=false, keyToSetToFalse=6)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/startMiniScreen/startMiniScreenContext.cpp:83
#23 0x0000555555565271 in cntxt::miniScreen::runWindowedGame (essentials=..., quitMiniScreen=@0x7fffffffcdef: true) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/startMiniScreen/startMiniScreenContext.cpp:98
#24 0x0000555555564efa in cntxt::miniScreen::actWithInput (essentials=..., quitMiniScreen=@0x7fffffffcdef: true) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/startMiniScreen/startMiniScreenContext.cpp:51
#25 0x0000555555564e04 in cntxt::miniScreen::waitForInput (logs=..., prefPath=..., chosenLang="english", rndWnd=..., miniGUI=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/startMiniScreen/startMiniScreenContext.cpp:41
#26 0x0000555555564c74 in cntxt::miniScreen::mainContext (logs=..., prefPath=..., chosenLang="english", rndWnd=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/startMiniScreen/startMiniScreenContext.cpp:27
#27 0x0000555555564738 in cntxt::windRend::create (logs=..., prefPath=..., chosenLang="english") at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/initWindowAndRenderer/initWindowRenderer.cpp:15
#28 0x000055555556403a in setupFiles::loadLanguage (logs=..., prefPath=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/setupFiles/setupLanguageFile.cpp:41
#29 0x0000555555563ce1 in setupFiles::createMainLanguageFile (logs=..., prefPath=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/setupFiles/setupLanguageFile.cpp:27
#30 0x00005555555638a9 in setupFiles::createMainLanguageDirectory (logs=..., prefPath=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/setupFiles/setupLanguageFile.cpp:15
#31 0x000055555556f970 in setupFiles::copyConfigFilesDirectory (logs=..., prefPath=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/setupFiles/setupConfigFiles.cpp:24
#32 0x0000555555565a47 in checkEverythingWasInit (logs=..., prefPath=..., sdl2Module=..., ttfModule=..., mixerInit=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/initSDL2/sdl2_initialization.cpp:23
#33 0x0000555555565938 in loadSDL2_modules (logs=..., prefPath=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/initSDL2/sdl2_initialization.cpp:16
#34 0x000055555557ede2 in initPrefPath::checkPrefPath (prefPath=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/initPrefPath/initPrefPath.cpp:24
#35 0x000055555557ebc1 in initPrefPath::startGame () at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/initPrefPath/initPrefPath.cpp:13
#36 0x000055555557a51b in main (argc=1, argv=0x7fffffffdda8) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/main.cpp:9
(gdb) exit
A debugging session is active.

	Inferior 1 [process 21055] will be killed.

Quit anyway? (y or n) y

Cordialement,
Antoine.

Dernière modification par Antoine79 (Hier à 12:18)

Hors ligne

#9 Hier à 13:15

Antoine79

Re : Erreurs de segmentation avec des projets personnels ( C++ et SDL 2 )

Alors, quelques infos:
Avec Xubuntu 24.04.1 installé sur un SSD, il y a un gel du clic gauche de ma souris lorsque gdb rencontre une 'assert( false );' Mais j' avais le même problème avec une erreur de segmentation il y a 1 à 2 semaines.
Avec un Ubuntu 24.04.1 ordinaire installé dans une machine virtuelle via VirtualBox le tout sous Xubuntu le clic gauche de ma souris répond parfaitement, je viens de le vérifier vers 13 heures 6 minutes avec codelite et gdb (mais codelite utilise gdb, en plus d'offrir une interface graphique pour gdb ce qui aide bien je trouve).
Avec UbuntuMate 24.04.1 installé lui aussi dans une machine virtuelle et via gdb dans un terminal, le clic gauche de ma souris ne répond plus une fois l' assert trouvé comme sous Xubuntu.

Voici le contenu du terminal sous Ubuntu avec gdb avec lequel je n' ai pas de problème (clic gauche qui permet de naviguer dans le système d' exploitation ).

antoine@antoine-VirtualBox:/media/antoine/mountedProjects/games/breakout4/workingDirectory/debugWorkingDir/Breakout4_1280$ gdb game
GNU gdb (Ubuntu 15.0.50.20240403-0ubuntu1) 15.0.50.20240403-git
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from game...
(gdb) run
Starting program: /media/antoine/mountedProjects/games/breakout4/workingDirectory/debugWorkingDir/Breakout4_1280/game 

This GDB supports auto-downloading debuginfo from the following URLs:
  <https://debuginfod.ubuntu.com>
Enable debuginfod for this session? (y or [n]) n
Debuginfod has been disabled.
To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libpulse.so.0
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libopusfile.so.0
warning: could not find '.gnu_debugaltlink' file for /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-16.1.so
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libbrotlidec.so.1
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libglib-2.0.so.0
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libpulse-simple.so.0
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libjack.so.0
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libgmodule-2.0.so.0
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libgobject-2.0.so.0
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libbrotlicommon.so.1
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libtinfo.so.6
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libcap.so.2
[New Thread 0x7ffff4a006c0 (LWP 3262)]
[New Thread 0x7ffff5b8e6c0 (LWP 3263)]
[New Thread 0x7fffebe006c0 (LWP 3264)]
warning: could not find '.gnu_debugaltlink' file for /usr/lib/x86_64-linux-gnu/libvulkan_intel.so
warning: could not find '.gnu_debugaltlink' file for /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so
warning: could not find '.gnu_debugaltlink' file for /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so
warning: could not find '.gnu_debugaltlink' file for /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so
warning: could not find '.gnu_debugaltlink' file for /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so
MESA: error: ZINK: failed to choose pdev
glx: failed to create drisw screen
[New Thread 0x7fffe8e006c0 (LWP 3269)]
[New Thread 0x7fffd68006c0 (LWP 3270)]
[New Thread 0x7fffd5e006c0 (LWP 3271)]
[New Thread 0x7fffd54006c0 (LWP 3272)]
[New Thread 0x7fffd4a006c0 (LWP 3273)]
[New Thread 0x7fffcfe006c0 (LWP 3274)]
[New Thread 0x7fffcf4006c0 (LWP 3275)]
[New Thread 0x7fffcea006c0 (LWP 3276)]
[New Thread 0x7fffce0006c0 (LWP 3277)]
[New Thread 0x7fffcd6006c0 (LWP 3278)]
[New Thread 0x7fffccc006c0 (LWP 3279)]
[New Thread 0x7fffc3e006c0 (LWP 3280)]
[New Thread 0x7fffc34006c0 (LWP 3281)]
[New Thread 0x7fffc2a006c0 (LWP 3282)]
[New Thread 0x7fffc20006c0 (LWP 3283)]
[New Thread 0x7fffc16006c0 (LWP 3284)]
game: /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/onePlayerInGame/sources/bonusesShop/shopInterface.cpp:116: void onePlayerShop::ShopInterface::createBuyingTexts(Essentials&, const PlayerData&): Assertion `false' failed.

Thread 1 "game" received signal SIGABRT, Aborted.
__pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)
    at ./nptl/pthread_kill.c:44
warning: 44	./nptl/pthread_kill.c: Aucun fichier ou dossier de ce nom
(gdb) where
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)
    at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=<optimized out>)
    at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6)
    at ./nptl/pthread_kill.c:89
#3  0x00007ffff764526e in __GI_raise (sig=sig@entry=6)
    at ../sysdeps/posix/raise.c:26
#4  0x00007ffff76288ff in __GI_abort () at ./stdlib/abort.c:79
#5  0x00007ffff762881b in __assert_fail_base
    (fmt=0x7ffff77d01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x555555688d31 "false", file=file@entry=0x555555688ca8 "/media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/onePlayerInGame/sources/bonusesShop/shopInterface.cpp", line=line@entry=116, function=function@entry=0x555555688c50 "void onePlayerShop::ShopInterface::createBuyingTexts(Essentials&, const PlayerData&)") at ./assert/assert.c:94
#6  0x00007ffff763b507 in __assert_fail
    (assertion=0x555555688d31 "false", file=0x555555688ca8 "/media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/onePlayerInGame/sources/bonusesShop/shopInterface.cpp", line=116, function=0x555555688c50 "void onePlayerShop::ShopInterface::createBuyingTexts(Essentials&, const PlayerData&)") at ./assert/assert.c:103
#7  0x00005555555e46f3 in onePlayerShop::ShopInterface::createBuyingTexts
--Type <RET> for more, q to quit, c to continue without paging--c
    (this=0x7fffffffc030, essentials=..., playerData=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/onePlayerInGame/sources/bonusesShop/shopInterface.cpp:116
#8  0x00005555555e3be6 in onePlayerShop::ShopInterface::ShopInterface (this=0x7fffffffc030, essentials=..., playerData=...)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/onePlayerInGame/sources/bonusesShop/shopInterface.cpp:38
#9  0x00005555555d9fa7 in onePlayerShop::context (essentials=..., playerData=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/onePlayerInGame/sources/bonusesShop/shopContext.cpp:18
#10 0x0000555555566236 in onePlGame::raceMainMenu::goToShop (essentials=..., playerData=..., interface=...)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/race/raceMainMenuContext.cpp:132
#11 0x0000555555565ee4 in onePlGame::raceMainMenu::redirectUser (essentials=..., playerData=..., interface=..., quitMainMenu=@0x7fffffffc3c4: false)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/race/raceMainMenuContext.cpp:68
#12 0x0000555555565dc1 in onePlGame::raceMainMenu::mainLoop (essentials=..., interface=..., playerData=..., quitMainMenu=false)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/race/raceMainMenuContext.cpp:46
#13 0x0000555555565b30 in onePlGame::raceMainMenu::context (essentials=..., skillLevel=1, raceType=0)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/race/raceMainMenuContext.cpp:27
#14 0x0000555555560152 in campaignChoice::runShopRace (essentials=..., skillLevel=1, interface=..., quitCampChoice=@0x7fffffffc70f: true)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/campaignChoice/campaignChoiceContext.cpp:41
#15 0x00005555555600d5 in campaignChoice::redirectPlayer (essentials=..., skillLevel=1, interface=..., quitCampChoice=@0x7fffffffc70f: true)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/campaignChoice/campaignChoiceContext.cpp:31
#16 0x000055555555ffe4 in campaignChoice::mainContext (essentials=..., skillLevel=1, quitWholeMenus=@0x7fffffffca1f: false)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/campaignChoice/campaignChoiceContext.cpp:19
#17 0x0000555555562dc9 in mainMenu::onePlayerRedirect (essentials=..., chosenSkillLevel=@0x7fffffffca20: 1, chosenMenuItem=@0x7fffffffca24: 0, quitWholeMenus=@0x7fffffffca1f: false)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/mainMenu/mainMenu.cpp:107
#18 0x0000555555562d35 in mainMenu::onePlayerGameSteps (essentials=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/mainMenu/mainMenu.cpp:98
#19 0x0000555555562cbd in mainMenu::runOnePlayerGame (essentials=..., gameButton=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/mainMenu/mainMenu.cpp:87
#20 0x0000555555562a97 in mainMenu::mainLoop (essentials=..., buttons=..., quitMenu=@0x7fffffffcad4: false, background=...)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/mainMenu/mainMenu.cpp:51
#21 0x0000555555562884 in mainMenu::menu (essentials=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/mainMenu/mainMenu.cpp:39
#22 0x000055555556514c in cntxt::miniScreen::changeScreenLayout (essentials=..., quitMiniScreen=@0x7fffffffcd8f: true, isFullScreen=false, keyToSetToFalse=6)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/startMiniScreen/startMiniScreenContext.cpp:83
#23 0x0000555555565271 in cntxt::miniScreen::runWindowedGame (essentials=..., quitMiniScreen=@0x7fffffffcd8f: true)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/startMiniScreen/startMiniScreenContext.cpp:98
#24 0x0000555555564efa in cntxt::miniScreen::actWithInput (essentials=..., quitMiniScreen=@0x7fffffffcd8f: true)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/startMiniScreen/startMiniScreenContext.cpp:51
#25 0x0000555555564e04 in cntxt::miniScreen::waitForInput (logs=..., prefPath=..., chosenLang="english", rndWnd=..., miniGUI=...)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/startMiniScreen/startMiniScreenContext.cpp:41
#26 0x0000555555564c74 in cntxt::miniScreen::mainContext (logs=..., prefPath=..., chosenLang="english", rndWnd=...)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/startMiniScreen/startMiniScreenContext.cpp:27
#27 0x0000555555564738 in cntxt::windRend::create (logs=..., prefPath=..., chosenLang="english")
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/initWindowAndRenderer/initWindowRenderer.cpp:15
#28 0x000055555556403a in setupFiles::loadLanguage (logs=..., prefPath=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/setupFiles/setupLanguageFile.cpp:41
#29 0x0000555555563ce1 in setupFiles::createMainLanguageFile (logs=..., prefPath=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/setupFiles/setupLanguageFile.cpp:27
#30 0x00005555555638a9 in setupFiles::createMainLanguageDirectory (logs=..., prefPath=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/setupFiles/setupLanguageFile.cpp:15
#31 0x000055555556f970 in setupFiles::copyConfigFilesDirectory (logs=..., prefPath=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/setupFiles/setupConfigFiles.cpp:24
#32 0x0000555555565a47 in checkEverythingWasInit (logs=..., prefPath=..., sdl2Module=..., ttfModule=..., mixerInit=...)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/initSDL2/sdl2_initialization.cpp:23
#33 0x0000555555565938 in loadSDL2_modules (logs=..., prefPath=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/initSDL2/sdl2_initialization.cpp:16
#34 0x000055555557ede2 in initPrefPath::checkPrefPath (prefPath=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/initPrefPath/initPrefPath.cpp:24
#35 0x000055555557ebc1 in initPrefPath::startGame () at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/initPrefPath/initPrefPath.cpp:13
#36 0x000055555557a51b in main (argc=1, argv=0x7fffffffdd48) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/main.cpp:9
(gdb) exit
A debugging session is active.

	Inferior 1 [process 3256] will be killed.

Quit anyway? (y or n) y

Dernière modification par Antoine79 (Hier à 13:16)

Hors ligne

#10 Hier à 13:51

lann

Re : Erreurs de segmentation avec des projets personnels ( C++ et SDL 2 )

1/ De ce que tu décris, ton programme ne serait pas en cause.
2/ Aurais-tu la possibilité d'activer debuginfo

Enable debuginfod for this session? (y or [n]) n

3/ Si on reprend le premier post, le SIGSEGV semble provenir de SDL2

Thread 1 "game" received signal SIGSEGV, Segmentation fault.
0x00007ffff7e34836 in ?? () from /lib/x86_64-linux-gnu/libSDL2-2.0.so.0

Avec debuginfo, on aura peut être plus d'éléments sinon essayer un SDL2 en mode debug
4/ Utilises-tu wayland ou Xorg dans Ubuntu Gnome

Dernière modification par lann (Hier à 13:52)


<Modéré>

Hors ligne

#11 Hier à 14:28

Antoine79

Re : Erreurs de segmentation avec des projets personnels ( C++ et SDL 2 )

Voici la sortie console de gdb game sous Xubuntu avec debuginfo activé:

GNU gdb (Ubuntu 15.0.50.20240403-0ubuntu1) 15.0.50.20240403-git
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from game...
(gdb) run
Starting program: /media/antoine/projetsLinux/projects/games/breakout4/workingDirectory/debugWorkingDir/Breakout4_1280/game 

This GDB supports auto-downloading debuginfo from the following URLs:
  <https://debuginfod.ubuntu.com>
Enable debuginfod for this session? (y or [n]) y
Debuginfod has been enabled.
To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit.
Downloading separate debug info for system-supplied DSO at 0x7ffff7fc3000
[Thread debugging using libthread_db enabled]                                                                                                                                                                                                                                                                                
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Downloading separate debug info for /lib/x86_64-linux-gnu/libgbm.so.1
Downloading separate debug info for /lib/x86_64-linux-gnu/libmpg123.so.0                                                                                                                                                                                                                                                     
Downloading separate debug info for /lib/x86_64-linux-gnu/libexpat.so.1                                                                                                                                                                                                                                                      
Downloading separate debug info for /lib/x86_64-linux-gnu/libglib-2.0.so.0                                                                                                                                                                                                                                                   
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libglib-2.0.so.0                                                                                                                                                                                                                                  
Downloading separate debug info for /lib/x86_64-linux-gnu/libglib-2.0.so.0
Downloading separate debug info for /lib/x86_64-linux-gnu/libpipewire-0.3.so.0                                                                                                                                                                                                                                               
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libgmodule-2.0.so.0                                                                                                                                                                                                                               
Downloading separate debug info for /lib/x86_64-linux-gnu/libgmodule-2.0.so.0
warning: could not find '.gnu_debugaltlink' file for /lib/x86_64-linux-gnu/libgobject-2.0.so.0                                                                                                                                                                                                                               
Downloading separate debug info for /lib/x86_64-linux-gnu/libgobject-2.0.so.0
[New Thread 0x7ffff54006c0 (LWP 5904)]                                                                                                                                                                                                                                                                                       
[New Thread 0x7ffff55ff6c0 (LWP 5905)]
[New Thread 0x7ffff0a006c0 (LWP 5906)]
Downloading separate debug info for /lib/x86_64-linux-gnu/libGLX_nvidia.so.0
Downloading separate debug info for /lib/x86_64-linux-gnu/libnvidia-glsi.so.550.120                                                                                                                                                                                                                                          
Downloading separate debug info for /lib/x86_64-linux-gnu/libnvidia-tls.so.550.120                                                                                                                                                                                                                                           
Downloading separate debug info for /lib/x86_64-linux-gnu/libnvidia-glcore.so.550.120                                                                                                                                                                                                                                        
Downloading separate debug info for /lib/x86_64-linux-gnu/libnvidia-gpucomp.so.550.120                                                                                                                                                                                                                                       
game: /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/onePlayerInGame/sources/bonusesShop/shopInterface.cpp:116: void onePlayerShop::ShopInterface::createBuyingTexts(Essentials&, const PlayerData&): Assertion `false' failed.                                                          

Thread 1 "game" received signal SIGABRT, Aborted.
Download failed: Argument invalide.  Continuing without source file ./nptl/./nptl/pthread_kill.c.
__pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
warning: 44	./nptl/pthread_kill.c: Aucun fichier ou dossier de ce nom
(gdb) where
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3  0x00007ffff764526e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4  0x00007ffff76288ff in __GI_abort () at ./stdlib/abort.c:79
#5  0x00007ffff762881b in __assert_fail_base
    (fmt=0x7ffff77d01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x555555688d31 "false", file=file@entry=0x555555688ca8 "/media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/onePlayerInGame/sources/bonusesShop/shopInterface.cpp", line=line@entry=116, function=function@entry=0x555555688c50 "void onePlayerShop::ShopInterface::createBuyingTexts(Essentials&, const PlayerData&)") at ./assert/assert.c:94
#6  0x00007ffff763b507 in __assert_fail
    (assertion=0x555555688d31 "false", file=0x555555688ca8 "/media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/onePlayerInGame/sources/bonusesShop/shopInterface.cpp", line=116, function=0x555555688c50 "void onePlayerShop::ShopInterface::createBuyingTexts(Essentials&, const PlayerData&)") at ./assert/assert.c:103
#7  0x00005555555e46f3 in onePlayerShop::ShopInterface::createBuyingTexts (this=0x7fffffffc090, essentials=..., playerData=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/onePlayerInGame/sources/bonusesShop/shopInterface.cpp:116
#8  0x00005555555e3be6 in onePlayerShop::ShopInterface::ShopInterface (this=0x7fffffffc090, essentials=..., playerData=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/onePlayerInGame/sources/bonusesShop/shopInterface.cpp:38
#9  0x00005555555d9fa7 in onePlayerShop::context (essentials=..., playerData=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/onePlayerInGame/sources/bonusesShop/shopContext.cpp:18
#10 0x0000555555566236 in onePlGame::raceMainMenu::goToShop (essentials=..., playerData=..., interface=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/race/raceMainMenuContext.cpp:132
#11 0x0000555555565ee4 in onePlGame::raceMainMenu::redirectUser (essentials=..., playerData=..., interface=..., quitMainMenu=@0x7fffffffc424: false)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/race/raceMainMenuContext.cpp:68
#12 0x0000555555565dc1 in onePlGame::raceMainMenu::mainLoop (essentials=..., interface=..., playerData=..., quitMainMenu=false) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/race/raceMainMenuContext.cpp:46
#13 0x0000555555565b30 in onePlGame::raceMainMenu::context (essentials=..., skillLevel=1, raceType=0) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/race/raceMainMenuContext.cpp:27
#14 0x0000555555560152 in campaignChoice::runShopRace (essentials=..., skillLevel=1, interface=..., quitCampChoice=@0x7fffffffc76f: true)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/campaignChoice/campaignChoiceContext.cpp:41
#15 0x00005555555600d5 in campaignChoice::redirectPlayer (essentials=..., skillLevel=1, interface=..., quitCampChoice=@0x7fffffffc76f: true)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/campaignChoice/campaignChoiceContext.cpp:31
#16 0x000055555555ffe4 in campaignChoice::mainContext (essentials=..., skillLevel=1, quitWholeMenus=@0x7fffffffca7f: false) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/onePlayerGame/inGameMainMenu/campaignChoice/campaignChoiceContext.cpp:19
#17 0x0000555555562dc9 in mainMenu::onePlayerRedirect (essentials=..., chosenSkillLevel=@0x7fffffffca80: 1, chosenMenuItem=@0x7fffffffca84: 0, quitWholeMenus=@0x7fffffffca7f: false)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/mainMenu/mainMenu.cpp:107
#18 0x0000555555562d35 in mainMenu::onePlayerGameSteps (essentials=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/mainMenu/mainMenu.cpp:98
#19 0x0000555555562cbd in mainMenu::runOnePlayerGame (essentials=..., gameButton=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/mainMenu/mainMenu.cpp:87
#20 0x0000555555562a97 in mainMenu::mainLoop (essentials=..., buttons=..., quitMenu=@0x7fffffffcb34: false, background=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/mainMenu/mainMenu.cpp:51
#21 0x0000555555562884 in mainMenu::menu (essentials=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/mainMenu/mainMenu.cpp:39
#22 0x000055555556514c in cntxt::miniScreen::changeScreenLayout (essentials=..., quitMiniScreen=@0x7fffffffcdef: true, isFullScreen=false, keyToSetToFalse=6)
    at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/startMiniScreen/startMiniScreenContext.cpp:83
#23 0x0000555555565271 in cntxt::miniScreen::runWindowedGame (essentials=..., quitMiniScreen=@0x7fffffffcdef: true) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/startMiniScreen/startMiniScreenContext.cpp:98
#24 0x0000555555564efa in cntxt::miniScreen::actWithInput (essentials=..., quitMiniScreen=@0x7fffffffcdef: true) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/startMiniScreen/startMiniScreenContext.cpp:51
#25 0x0000555555564e04 in cntxt::miniScreen::waitForInput (logs=..., prefPath=..., chosenLang="english", rndWnd=..., miniGUI=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/startMiniScreen/startMiniScreenContext.cpp:41
#26 0x0000555555564c74 in cntxt::miniScreen::mainContext (logs=..., prefPath=..., chosenLang="english", rndWnd=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/startMiniScreen/startMiniScreenContext.cpp:27
#27 0x0000555555564738 in cntxt::windRend::create (logs=..., prefPath=..., chosenLang="english") at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/initWindowAndRenderer/initWindowRenderer.cpp:15
#28 0x000055555556403a in setupFiles::loadLanguage (logs=..., prefPath=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/setupFiles/setupLanguageFile.cpp:41
#29 0x0000555555563ce1 in setupFiles::createMainLanguageFile (logs=..., prefPath=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/setupFiles/setupLanguageFile.cpp:27
#30 0x00005555555638a9 in setupFiles::createMainLanguageDirectory (logs=..., prefPath=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/setupFiles/setupLanguageFile.cpp:15
#31 0x000055555556f970 in setupFiles::copyConfigFilesDirectory (logs=..., prefPath=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/setupFiles/setupConfigFiles.cpp:24
#32 0x0000555555565a47 in checkEverythingWasInit (logs=..., prefPath=..., sdl2Module=..., ttfModule=..., mixerInit=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/initSDL2/sdl2_initialization.cpp:23
#33 0x0000555555565938 in loadSDL2_modules (logs=..., prefPath=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/initSDL2/sdl2_initialization.cpp:16
#34 0x000055555557ede2 in initPrefPath::checkPrefPath (prefPath=...) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/initPrefPath/initPrefPath.cpp:24
#35 0x000055555557ebc1 in initPrefPath::startGame () at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/contexts/gameStarting/initPrefPath/initPrefPath.cpp:13
#36 0x000055555557a51b in main (argc=1, argv=0x7fffffffdda8) at /media/antoine/projetsLinux/projects/games/breakout4/sourceCode/codelite/breakout4/game/sources/main.cpp:9
(gdb) exit
A debugging session is active.

	Inferior 1 [process 5900] will be killed.

Quit anyway? (y or n) y

Dans Ubuntu Gnome dans le terminal:

antoine@antoine-VirtualBox:~$ echo $XDG_SESSION_TYPE
wayland
antoine@antoine-VirtualBox:~$ 

J'ai été sur le depot github de la SDL2 hier et avant-hier et j'ai vu qu' il y a avait eu des corrections de bugs depuis la version 2.30.0 il en sont au moins à la version 2.30.10 avec des mentions de corrections de bugs. Dans un terminal j'obtiens ceci depuis Xubuntu:

antoine@antoine-MS-7B79:~$ sdl2-config --version
2.30.0
antoine@antoine-MS-7B79:~$ 

Je vais voir la SDL2 sur leur depot github en particulier les corrections de bug et je verais si:
- Je tente d' installer la version 2.30.0 en mode Debug via CMake et je ferais un retour via gdb.
ou Alors/Après:
- J' installe via les sources SDL2 2.30.10 ou plus récent et CMake en release en faisant un apt purge libsdl2-dev avant et en reinstallant libsdl2-image, libsdl2-ttf libsdl2-mixer

Merci.:)

Dernière modification par Antoine79 (Hier à 15:54)

Hors ligne

#12 Hier à 17:24

Antoine79

Re : Erreurs de segmentation avec des projets personnels ( C++ et SDL 2 )

Rebonjour,
J'ai du nouveau.
J'ai installé Ubuntu Gnome à côté de Xubuntu sur mon SSD, ça a pris un peu de temps. Ensuite j'ai installé tout le nécessaire pour le développement (dont codelite et build-essential). Au début en lançant gdb via codelite j'ai eu le même problème que sous Xubuntu puis par intuition, dans un terminal j'ai tapé la commande suivante...

antoine@antoine-MS-7B79-UbuntuGnome:~$ echo $XDG_SESSION_TYPE

Qui m' a renvoyé 'x11'. J'ai fermé ma session, cliqué sur la roue crantée en bas à droite de l'écran de connection puis sélectionné 'wayland' ; puis j'ai ouvert ma session, relancé codelite puis le debugger gdb et là miracle, j'ai eu le plaisir de me balader dans la liste d'appel des fonctions, de voir ce que contiennent les variables locales dans la fonction en cours le tout avec ma souris et le bouton gauche qui marche. big_smile

La question que je me pose maintenant, c'est qu'en est-t-il de wayland avec Xubuntu ? Je sais que pour cette distribution c'est le bureau XFCE qui est utilisé, mais wayland , c'est un gestionnaire graphique , non? Si vous en savez plus que moi à ce sujet n' hésitez pas à poster pour me mettre au courant, même si je vais faire des recherches de mon côté. big_smile

Hors ligne

#13 Hier à 19:45

lann

Re : Erreurs de segmentation avec des projets personnels ( C++ et SDL 2 )

XFCE est en train de mettre en place Wayland mais ce n'est pas fini.
Ce qui serait bien c'est que tu renvoies un rapport de bug vers XOrg et SDL2


<Modéré>

Hors ligne

#14 Hier à 21:00

Antoine79

Re : Erreurs de segmentation avec des projets personnels ( C++ et SDL 2 )

lann a écrit :

XFCE est en train de mettre en place Wayland mais ce n'est pas fini.
Ce qui serait bien c'est que tu renvoies un rapport de bug vers XOrg et SDL2

Oui j'ai vu que Xfce 4.19 et Xfce 4.20 intégraient timidement un support de Wayland. Sur QWant avec la recherche par intelligence artificielle il est dit qu' a partir de Xubuntu 25.04 Xfce sera en version 4.20, mais ce n'est pas une version LTS.
Je vais essayer de faire un effort pour envoyer un rapport de bug au moins pour la SDL2 (sur bugzilla je crois, mais je n'en suis pas sur). Non en fait c'est sur github pour les rapports de bugs.

Dernière modification par Antoine79 (Hier à 21:01)

Hors ligne