2012-01-12 12 views
3

多くの場合、デバッグバージョンで動作するコードは、リリースバージョンで正常に動作しません。私はいつも起こっている地震のように、これらの質問に常に遭遇します。どのビッグビールが私にいくつかの考えを与えるのを助けることができますか?QtデバッグバージョンとQtリリースバージョンの違いは何ですか?

+1

通常、デバッグバージョンは遅く、大きくなり、RAMをさらに使います。彼らはデバッグを可能にし、より簡単にするデバッグシンボルを持っています。リリースバージョンでは、すべての非生産情報が削除されます。 – Blender

+0

あなたにお返事ありがとうございます –

+0

これはQt特有の質問ですか、それとも*任意の*ソフトウェアのデバッグ/リリースバージョンですか? – spraff

答えて

4

一般に、アプリがデバッグでは動作するが、リリースでは動作しないのは、変数やメモリが初期値に正しく設定されていないためです。

デバッグビルドでは、変数とメモリは通常ゼロに設定されますが、リリース時にはこのステップをスキップして時間を節約します。余分なデータは、オブジェクトの周りに追加され、メモリの上書きを検出するための障壁として割り当てられます。

リリースビルドの最適化でエラーが発生することがあります

+2

本当ですか! valgrindを使用することで、そのような問題の原因を特定することができます。 – FFox

+0

@FFoxだから本当です!私は2ヶ月間バグを乗り越えました(明らかに無害です)、valgrindは誤って実装されたラウンド関数のためにピクセル配列がオーバーフローしていることがわかりました。 – UmNyobe

+0

@Martin先日、QTではトラッカーがあなたのメッセージを見つけました。 :) – karlphillip

関連する問題