В игре kde3 под названием ksirtet (клон тетриса) при игре против компьютера игрок-человек не может перемещать фигуру тетриса влево/вправо. Я пытаюсь это исправить, но не могу отладить в gdb. После строки «kapp->exec()» gdb перестает отвечать, игра запускается, и я не могу ввести какую-либо команду do gdb, чтобы увидеть, что происходит. Таким образом, вопрос касается отладки цикла событий kde, и любая помощь будет высоко оценена.
Отладка разработки KDE
Ответы (1)
Вообще говоря, вы не хотели бы выполнять отладку в цикле событий без необходимости. Тем не менее, вы, вероятно, захотите разбросать несколько точек останова в интересных местах, особенно там, где, по вашему мнению, код должен запускаться после нажатия клавиши. Если вы попытаетесь выполнить код цикла обработки событий с самого начала, вы столкнетесь с проблемами, пытаясь взаимодействовать с программой, которую хотите отладить.
Кроме того, если я правильно помню, вы можете использовать команду control-c в gdb, и это прервет программу в ее текущей точке выполнения и вернет вам управление. Если вы действительно хотите увидеть, что происходит, попробуйте поставить в очередь некоторые события в игре (быстро нажмите несколько клавиш), затем прервите gdb и пройдитесь по действиям программы в ответ на эти события. Однако вам придется действовать очень быстро, так как цикл обработки событий на современном компьютере выполняется очень быстро.