【发布时间】:2013-09-06 07:38:22
【问题描述】:
我正在尝试学习如何从命令行使用泄漏工具,这是我的代码,应该会在 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。为了使用泄漏工具,我必须在代码中设置睡眠,这很烦人。
有人可以在这里点亮一些灯吗?
【问题讨论】:
标签: objective-c macos memory-leaks