3

WWDC 2015 で発表されたように、Clang Address Sanitizer が Xcode と OS X に導入されます。

セッション 413: 高度なデバッグとアドレス サニタイザー

Xcode プロジェクトで Clang Address Sanitizer を有効にするにはどうすればよいですか?

4

1 に答える 1

7

Address Sanitizer は、Xcode 7 の新機能として追加されました。

オプションを有効にするには、スキームでRuntime Sanitization>フラグを使用します。Enable Address Sanitizer

git は、この変更を.xcschemeファイルに表示します。

enableAddressSanitizer = "YES"

Xcode 7ドキュメントの新機能から:

アドレスサニタイザー。Xcode 7 では、アドレス サニタイザーを使用してメモリの破損を検出およびデバッグするように設計されたインストルメンテーションを使用してアプリをビルドできます。

Objective-C および C コードは、スタックおよびヒープ バッファ オーバーランや解放後使用の問題などのメモリ破損の問題の影響を受けやすくなっています。これらのメモリ違反が発生すると、アプリが予期せずクラッシュしたり、奇妙な動作を示したりする可能性があります。多くの場合、クラッシュや異常な動作は再現が難しく、原因が問題の原因から遠く離れている可能性があるため、メモリ破損の問題を突き止めるのは困難です。

アドレスサニタイザーを有効にする

ビルド スキームでアドレス サニタイザーを有効にします。有効にすると、追加のインストルメンテーションがアプリに組み込まれ、メモリ違反をすぐにキャッチできるため、問題が発生した場所で問題を調査できます。問題のあるアドレスとヒープ上の有効なオブジェクトとの関係、割り当て/割り当て解除情報など、その他の診断情報も提供され、問題を特定して迅速に修正するのに役立ちます。

Address Sanitizer は効率的で、インタラクティブなアプリケーションだけでなく、定期的に使用するのに十分な速さです。OS X、シミュレータ、および iOS デバイスでサポートされています。

于 2015-08-22T00:01:18.213 に答える