我正在尝试学习如何从命令行使用泄漏工具,这是我应该在以下位置产生泄漏的代码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]
多次运行泄漏,但没有报告泄漏。我在这里做错了什么?另外,我是一个命令行迷,我真的很想能够使用类似于 valgrind 的东西,它不能很好地支持 os x 10.8。为了使用泄漏工具,我必须在我的代码中加入睡眠,这很烦人。
有人可以在这里点亮一些灯吗?