Xcodeのこれらのオプションは何を説明できますか?Xcode - スクリーブル、ガードエッジ、ガードmalloc
- ガードはガードmallocの
彼らは何をしているとどのような彼らは、どのように有益な彼らは、デバッグ/テスト用にすることができを有効にしますか?
ありがとうございました。
Xcodeのこれらのオプションは何を説明できますか?Xcode - スクリーブル、ガードエッジ、ガードmalloc
彼らは何をしているとどのような彼らは、どのように有益な彼らは、デバッグ/テスト用にすることができを有効にしますか?
ありがとうございました。
フリーライズされていたメモリブロックにあったデータを上書きすることでフリーブロックした後、メモリブロックを使用していることは明らかです。
Guard EdgeとGuard Mallocは、メモリーオーバーランと(ある程度は)読み取り/書き込み保護メモリブロックによるメモリオーバーランの発見に役立ち、メモリを誤って使用した場合にプログラムがクラッシュする可能性があります。
上記の「ドキュメンテーション」リンクは一般的にXcodeにありますが、具体的にはRN-MallocOptionsがこれらの(その他の)オプションを詳細にカバーしています。
Jim Kubicek氏は、Debugging Smashed Memory in Obj-Cに「Xcodeでこれらを有効にするにはどうすればよいですか?」という素晴らしい例を示しています。質問:
[Edit Scheme]ウィンドウを開き、[Diagnostics]タブに移動します。あなたは "Scribbleを有効にする"と "Malloc Stack"を有効にしたいと思うでしょう。 ...要するに、 "Enabled Scribble"は、アロケータに新たに割り当てられたメモリに0xAAを書き込ませ、割り当てられたメモリに0x55を書き込ませる。 "Malloc Stack"はメモリの割り当てと解放の履歴を記録します。あなたがここまで読んでいれば
、おそらくAppleのテクニカルノートに興味があるでしょう:
時々私がクラッシュを持っているので、私はこれを聞いて私のアプリケーションはデバッグしようとしていますが、Xcode 4は "int retVal = UIApplicationMain(argc、argv、nil、@" AppDelegate "); "をエラーの原因として指摘しています。だから私はそれがエラーの正しい行を指すようにする方法を見つけることを試みていた。 – SpaceDog
@DigitalRobotもし彼らが100% "保護"を与えていなくても、それがメモリエラーであれば、上のオプションのどれかが有効になっていれば、あなたのプログラムは実際のエラーの近くでクラッシュする可能性が高くなります。ありがとう。 –
ありがとう。それが私が探していたものです! – SpaceDog