2

非常に大きなコードがあり、codelite で実行しようとすると、codelite インターフェイスが応答しなくなり、強制終了する必要があります。これは通常、無限ループの場合に発生します。

問題を見つけるためにコードの複数の場所にブレークポイントを配置しようとしましたが、今のところうまくいきません。プログラムの実行を開始してからしばらくすると、実行が停止します。このような無限ループを検出する最良の方法は何ですか? コードライトには「停止」ボタンがありません。

編集: 多くの cout ステートメントを追加することになり、gdb ではなくターミナルで実行可能ファイルを実行しました。これは、プログラムが本当に長い間何をしているかを見つけるのに役立ちました。

4

1 に答える 1

2

The simplest approach is to run the code for a while and then use the debugger to suspend execution without using breakpoints. If you are lucky, the call stack should indicate the bit of code that you are getting stuck in.

Failing that you will need to pepper your code with logging statements.

于 2012-06-01T21:11:21.330 に答える