59

Xcode でメモリ チェックを有効にしました ([スキームの編集] -> [オプション])。デバイスのデバッグを実行すると、次のようになりますdyld: could not load inserted library '/usr/lib/libgmalloc.dylib' because image not found。この対策は、サイクルの早い段階でミスを発見することを期待して、積極的に取られました。

メモリ チェックはデバイス上で有効ではありませんか? http://lists.apple.com/archives/xcode-users/2012/Mar/msg00271.htmlに従って確認および調査されたため、有効であるように見えます。また、Xcode は、コンパイルおよびリンク中に何の不満もありませんでした。デバイスに対して有効でない場合、Xcode がライブラリを挿入するのはなぜですか? 解決策はありますか?グーグルはいくつかのヒットを返しましたが、具体的な解決策は見当たりませんでした。

デバイスでデバッグするときに Xcode Guard Malloc を有効にするにはどうすればよいですか?

4

4 に答える 4

67

デバイスで GuardMalloc を使用することはできません。

于 2014-09-30T06:24:26.540 に答える
61

回避策として、2 つの新しい Xcode スキームを作成しました。1 つは「XXX デバイス」という名前で、malloc ガードは含まれません。2 つ目は「XXX シミュレーター」で、malloc ガードが含まれています。

デバイス/シミュレーターの目的でスキームを追加することには疑問があります (http://www.cocoabuilder.com/archive/xcode/303307-why-does-xcode-create-nonsensical-destinations-in-every-scheme.html)。どうやら、Dave Duncan は、Xcode が何かを正しく実行しない (または malloc ガードなどのツールを使用していない) 問題に遭遇していません。

これは、Cupertino ソフトウェアのがらくたのにおいがします。Apple とそのくだらない QA 部門 (存在する場合) に +1 して、別のバグを自由に飛ばしました。

于 2012-11-30T02:30:32.333 に答える
11

他の方の回答通り、デバイスでは使えませんEnable Guard Mallocが、シミュレーターでは使えます。

Xcode 7.3.1 の時点で、その他の 3 つのメモリ管理オプションはすべて、デバイスで使用できます: Enable Malloc ScribbleEnable Malloc Guard EdgesおよびEnable Zombie Objects.

于 2016-06-06T15:05:35.613 に答える