私はプログラムを壊す必要があるかどうかをチェックする場合は、句を書かれているデバッグやない:コンパイラによるブレークポイントの最適化の回避方法を教えてください。
if (a < 0) {
a = a;
}
a
負になるべきではありませんが、私はそれがないことを発見した、と私はデバッグのために壊したくそれが起こるとなぜそれが否定的になるのかを知るために、私はこのif節を書いています。行a = a;
には、if節に入るとプログラムを停止するはずのブレークポイントが設定されています。問題は、行が何もしないことです(これは何かを混乱させないために必要です)。そのため、行は最適化され、ブレークポイントはif節の後に終わります。このトリックは通常動作しますが、コンパイラは今回はそれほど見つからなかったようです。
言語はC++で、qmake
(Qtツール)とmingw
でコンパイルしています。
私の質問は、コンパイラがブレークポイントを設定しているときにコード行を最適化できないようにするにはどうすればいいですか?または、条件付きでデバッグ用のプログラムを中断する他の方法がありますか?
どのような言語ですか?コンパイラは何ですか? – harold
@harold:Qtツール 'qmake'を使ってC++と' mingw'(私の質問を更新しました)。私はちょうど今あなたの質問を見ましたが、私はすでに問題を解決しました(受け入れられた回答を参照)。 – HelloGoodbye