Cocoaアプリケーションのデバッグビルドとリリースビルドの違いは何ですか? デバッグバージョンにはデバッグのための追加情報が含まれていますが、それ以外は何が違うのですか?Xcode/Cocoa:デバッグビルドとリリースビルドの違いは何ですか?
15
A
答えて
31
デバッグビルドには、デバッガで使用できるデバッグシンボルが含まれます。リリースビルドにはデバッグシンボルが含まれていないことが多いので、クラッシュダンプを取得した場合、有益なシンボル名の代わりに16進数のアドレスがたくさんあります。
デバッグビルドは最適化(-O0
with gcc)でコンパイルされませんが、リリースビルドは最適化(通常-O2
または-O3
)でコンパイルされます。最適化は、デバッグをはるかに困難にします。リリースアプリケーションをデバッグしようとすると、アセンブリステートメントがHLLステートメント、ステートメントの並べ替え、関数のインライン化、ループのアンロールなどの理由で、デバッガーが非常に混乱します。
デバッグとリリースのビルドいくつかのコードはそれらに基づいて条件付きでコンパイルされます(例えば、配列境界チェック、アサーションなど)が、アプリケーションに非常に依存します。典型的な例は、リリースモードの場合は#define NDEBUG
になり、アサーションが削除されます。
0
Tigerでは、デバッグビルドは「ゼロリンク」です。これはあなたの環境にのみ最適化されており、実際に完全なビルドではありません。
関連する問題
- 1. Asp.netリリースビルド対デバッグビルド
- 2. デバッグビルドは、リリースビルド署名バージョン
- 3. リリースビルドはデバッグビルドとは異なる動作をします
- 4. iPhoneリリースビルドがデバッグビルドと同じ機能を果たさない
- 5. デバッグビルドとリリースビルドの動作が異なります
- 6. デバッグビルド用のアプリケーションとリリースビルド用のMultiDexApplicationの切り替え
- 7. 1つのフレーバのリリースビルドとデバッグビルドの両方に署名する方法
- 8. NoClassDefFoundExceptionは、いくつかのクラスのライブラリプロジェクトがデバッグビルドに存在しないためにリリースビルドに存在します。
- 9. $と$$の違いは何ですか?
- 10. `##`と `hashCode`の違いは何ですか?
- 11. typedefとの違いは何ですか?
- 12. NodeJS:「./ ..」と「..」の違いは何ですか?
- 13. {}())と{})の違いは何ですか?
- 14. `&`と `ref`の違いは何ですか?
- 15. `==`と `is`の違いは何ですか?
- 16. difftimeと ' - 'の違いは何ですか?
- 17. #{} $ {}と%{}の違いは何ですか?
- 18. ⊕と+の違いは何ですか?
- 19. アペンダーと〜の違いは何ですか?
- 20. "./"と "../"の違いは何ですか?
- 21. "$^N"と "$ +"の違いは何ですか?
- 22. %Qと%{}の違いは何ですか?
- 23. バックスティックと$()の違いは何ですか?
- 24. A`と ``の違いは何ですか[:] `
- 25. パッケージのインポートobjと何かの違いをインポートパッケージとPythonの何かの違いは何ですか?
- 26. METADATAとMETADATA.jl:違いは何ですか?
- 27. twistdとnohup&:違いは何ですか?
- 28. libspeとlibspe2?違いは何ですか?
- 29. Backbone.jsとPusherapp - 違いは何ですか?
- 30. wp_link_pagesとthe_posts_pagination→違いは何ですか?