在一款叫做ksirtet (俄罗斯方块的克隆)的kde3游戏中,人类玩家在与电脑对战时,不能左右移动俄罗斯方块。我正在尝试修复它,但无法在gdb中调试。在行"kapp->exec()“gdb停止响应后,游戏运行,我不能输入任何命令do gdb来查看发生了什么。所以问题是关于调试kde事件循环,任何帮助都是非常感谢的。
发布于 2009-06-03 14:54:22
一般来说,除非必要,否则您不会希望调试到事件循环中。也就是说,您可能希望在感兴趣的地方分散一些断点,特别是在您认为代码应该在按键后运行的地方。如果您尝试从头开始逐步执行事件循环代码,则在尝试与要调试的程序交互时会遇到问题。
另外,如果我没记错的话,您可以在gdb中控制-c,它将在程序的当前执行点中断程序,并将控制权恢复给您。如果你真的想知道发生了什么,试着把游戏中的一些事件排入队列(快速地把一堆键混在一起),然后中断gdb,逐步了解程序正在做什么来响应这些事件。不过,您必须非常快速,因为现代计算机上的事件循环处理速度非常快。
https://stackoverflow.com/questions/941410
复制相似问题