1

ksirtet (テトリスのクローン) と呼ばれる kde3 ゲームでは、コンピューターと対戦するとき、人間のプレイヤーはテトリスの駒を左右に動かすことができません。修正しようとしていますが、gdb でデバッグできません。"kapp->exec()" gdb の行が応答を停止した後、ゲームが実行され、何が起こっているのかを確認するコマンド do gdb を入力できません。したがって、質問はkdeイベントループのデバッグに関するものであり、どんな助けも大歓迎です。

4

1 に答える 1

1

一般的に言えば、必要でない限り、イベント ループにデバッグすることは望ましくありません。とはいえ、おそらく、関心のある場所、特にキーを押した後にコードを実行する必要があると思われる場所に、ブレークポイントを散らばらせたいと思うでしょう。イベント ループ コードを最初からステップ実行しようとすると、デバッグするプログラムと対話しようとすると問題が発生します。

さらに、私の記憶が正しければ、gdb で control-c を実行すると、現在の実行ポイントでプログラムが中断され、制御が元に戻ります。何が起こっているのかを本当に知りたい場合は、ゲーム内のいくつかのイベントを待ち行列に入れてみてください (キーの束をすばやくマッシュアップします)。次に、gdb を中断し、それらのイベントに応じてプログラムが行っていることをステップ実行します。ただし、最新のコンピューターでのイベント ループ処理は非常に高速であるため、非常に高速である必要があります。

于 2009-06-03T14:54:22.490 に答える