Cocoaアプリケーションのデバッグビルドとリリースビルドの違いは何ですか? デバッグバージョンにはデバッグのための追加情報が含まれていますが、それ以外は何が違うのですか?Xcode/Cocoa:デバッグビルドとリリースビルドの違いは何ですか?
15
A
答えて
31
デバッグビルドには、デバッガで使用できるデバッグシンボルが含まれます。リリースビルドにはデバッグシンボルが含まれていないことが多いので、クラッシュダンプを取得した場合、有益なシンボル名の代わりに16進数のアドレスがたくさんあります。
デバッグビルドは最適化(-O0
with gcc)でコンパイルされませんが、リリースビルドは最適化(通常-O2
または-O3
)でコンパイルされます。最適化は、デバッグをはるかに困難にします。リリースアプリケーションをデバッグしようとすると、アセンブリステートメントがHLLステートメント、ステートメントの並べ替え、関数のインライン化、ループのアンロールなどの理由で、デバッガーが非常に混乱します。
デバッグとリリースのビルドいくつかのコードはそれらに基づいて条件付きでコンパイルされます(例えば、配列境界チェック、アサーションなど)が、アプリケーションに非常に依存します。典型的な例は、リリースモードの場合は#define NDEBUG
になり、アサーションが削除されます。
0
Tigerでは、デバッグビルドは「ゼロリンク」です。これはあなたの環境にのみ最適化されており、実際に完全なビルドではありません。
関連する問題
- 1. Asp.netリリースビルド対デバッグビルド
- 2. iPhoneリリースビルドがデバッグビルドと同じ機能を果たさない
- 3. デバッグビルドとリリースビルドの動作が異なります
- 4. difftimeと ' - 'の違いは何ですか?
- 5. A`と ``の違いは何ですか[:] `
- 6. `&`と `ref`の違いは何ですか?
- 7. バックスティックと$()の違いは何ですか?
- 8. `##`と `hashCode`の違いは何ですか?
- 9. "$^N"と "$ +"の違いは何ですか?
- 10. #{} $ {}と%{}の違いは何ですか?
- 11. typedefとの違いは何ですか?
- 12. %Qと%{}の違いは何ですか?
- 13. `==`と `is`の違いは何ですか?
- 14. $と$$の違いは何ですか?
- 15. NodeJS:「./ ..」と「..」の違いは何ですか?
- 16. $ dirtyと$ invalid:違いは何ですか?
- 17. Backbone.jsとPusherapp - 違いは何ですか?
- 18. libspeとlibspe2?違いは何ですか?
- 19. デバッグビルドとリリースビルドを区別するための変数またはプロパティを呼び出す
- 20. リストと何か([_])と何か(_)の違い
- 21. Xcode 4のデバッグビルド設定の正しいコード署名設定は何ですか?
- 22. decodeURIComponentとunescapeの違いは何ですか?unescapeの問題は何ですか?
- 23. コロンの配置の違いは何ですか:何かと何か:
- 24. GoogleのDremelとは何ですか? Mapreduceとの違いは?
- 25. アプリはデバッグビルドで正常に動作しますが、リリースビルド時にクラッシュする可能性があります。
- 26. 重要な違いは何ですかext2-ext3とext3-ext4の違いは何ですか?
- 27. 「アソシエーション」と「リレーション」という用語の違いは何ですか?
- 28. グロムとは何ですか? mapPartitionsとの違いは?
- 29. AndroidでThread.run()とHandler.post()とServiceの違いは何ですか?
- 30. Androidでは、MotionEventのgetAction()とgetActionMasked()の違いは何ですか?