2009-06-02 7 views
1

Dans un jeu de kde3 appelé ksirtet (un tetris clone) lorsque vous jouez contre un ordinateur, le joueur humain ne peut pas déplacer le morceau de tetris gauche/droite. J'essaye de le réparer mais ne peux pas déboguer dans gdb. Après la ligne "kapp-> exec()", gdb ne répond plus, le jeu s'exécute et je ne peux pas entrer de commande pour que gdb puisse voir ce qui se passe. Donc, la question est sur le débogage de la boucle d'événements kde et toute aide serait très appréciée.Débogage de développement de KDE

Répondre

1

De manière générale, vous ne voudriez pas déboguer dans la boucle d'événements, sauf si nécessaire. Cela dit, vous voulez probablement disperser une pincée de points d'arrêt sur les lieux d'intérêt, en particulier lorsque vous pensez que le code devrait être en cours d'exécution après la touche. Si vous essayez de parcourir le code de la boucle d'événements depuis le début, vous rencontrerez des problèmes pour essayer d'interagir avec le programme que vous voulez déboguer. En outre, si je me souviens bien, vous pouvez contrôler-c dans gdb, et il va interrompre le programme à son point d'exécution actuel, et vous restaurer le contrôle. Si vous voulez vraiment voir ce qui se passe, essayez de mettre en file d'attente certains événements dans le jeu (écrasez un tas de touches rapidement), puis interrompez gdb et passez en revue ce que le programme fait en réponse à ces événements. Cependant, vous devrez être très rapide, car le traitement des boucles d'événements sur un ordinateur moderne est très rapide.

+0

Merci pour votre réponse. Je me bats contre gdb et ce truc ctrl-c, mais pas de chance jusqu'ici. –