コマンドラインからリークツールを使用する方法を学ぼうとしています。これは、でリークを生成するコードですNSString
:
#import <Foundation/Foundation.h>
#import <unistd.h>
int main(int argc, const char *argv[])
{
NSString *string = [[NSString alloc] init];
pid_t pid = getpid();
NSLog(@"pid: %d", pid);
string = nil;
[NSThread sleepForTimeInterval:20];
return 0;
}
リークは 10 秒ごとに更新されることがわかりました (これが正しいかどうかはわかりませんが、間隔を 20 秒に設定しました)。
これは自動リリースプールになく、-fno-objc-arc
「安全」のためにコンパイルしたため、リークが発生するはずです。
[pid]
リークが報告されていない状態で、リークを複数回実行しようとしました。ここで何が間違っていますか?また、私はコマンド ライン ファンであり、os x 10.8 をあまりサポートしていない valgrind に似たものを使用できるようになりたいと思っています。リークツールを使用するためにコードにスリープを入れなければならないのは面倒です。
誰かここにライトを当ててくれませんか?