2009-06-02 4 views
1

ksirtet (테트리스 클론)이라 불리는 kde3 게임에서 컴퓨터를 상대로 게임을하는 경우, 인간 플레이어는 테트리스 조각을 왼쪽/오른쪽으로 움직일 수 없습니다. 나는 그것을 고치려고 노력하고 있지만 gdb에서 디버깅 할 수는 없다. "kapp-> exec()"줄이 응답을 멈 추면 게임이 실행되고 gdb를 통해 명령을 입력 할 수 없습니다. 그래서 질문은 kde 이벤트 루프 디버깅에 관한 것이고 어떤 도움이라도 대단히 감사 할 것입니다.KDE 개발 디버깅

답변

1

일반적으로 말하면, 필요하지 않으면 이벤트 루프를 디버그하고 싶지 않을 것입니다. 즉, 관심 장소에 중단 점을 뿌리기를 원할 것입니다. 특히 키를 누른 후 코드가 실행되어야한다고 생각하는 곳에서. 처음부터 이벤트 루프 코드를 단계별로 실행하려고하면 디버그하려는 프로그램과 상호 작용하려는 문제가 발생합니다.

또한 정확하게 기억한다면 gdb에서 control-c를 사용할 수 있으며 현재 실행 지점에서 프로그램을 중단하고 제어를 복원합니다. 실제로 무슨 일이 일어나고 있는지보고 싶다면 게임의 일부 이벤트를 대기 상태로 만들고 (키를 빠르게 제거한 다음) gdb를 중단하고 해당 이벤트에 대한 응답으로 프로그램이 수행중인 작업을 단계별로 실행하십시오. 최신 컴퓨터의 이벤트 루프 처리가 매우 빠르기 때문에, 당신은 매우 빨라야합니다.

+0

감사합니다. 나는 gdb와이 ctrl-c 트릭과 싸우고 있지만, 아직까지는 운이 없다. –