デバッグのためにプログラムを中断する必要があるかどうかをチェックする if 節を書きました。
if (a < 0) {
a = a;
}
a
負になるべきではありませんが、そうであることがわかりました。デバッグのために中断して、それが発生した場合に負になる理由を確認したいので、このif句を書きました。行a = a;
にブレークポイントを設定しました。ブレークポイントは、if 句に入った場合にプログラムを停止することになっています。問題は、行が何もしないことです (これは何も台無しにしないために必要です)。そのため、行は最適化されなくなり、ブレークポイントは if 句の後に終了します。このトリックは通常は機能しますが、今回はコンパイラがあまり見つけられなかったようです。
言語は C++ で、qmake
(Qt ツール) とmingw
.
私の質問は、コード行にブレークポイントが設定されている場合に、コンパイラーがコード行を最適化しないようにするにはどうすればよいですか? または、デバッグのためにプログラムを条件付きで中断する他の方法はありますか?