在Xcode Instruments中,“Allocated Prior to Attach”是什么意思?

4

我刚接触Xcode和性能分析工具Instruments。我试图查找我的C程序中的内存泄漏问题。一切看起来都很好,显示没有内存泄漏,但是我不理解程序中使用的某些术语。这是否意味着我在程序的其他地方仍然存在内存泄漏?


除非我们知道你在做什么,否则无法提供帮助。请向我们展示你的代码。 - vinayawsm
实际上,我只是尝试了最基本的“Hello World”程序。我没有进行任何动态内存分配。我仍然看到持久数字为681。而且负责调用者是<Allocated Prior to Attach>。我非常好奇这意味着什么以及为什么会发生这种情况。 - Wu Xiliang
1个回答

9
调试器和Instruments等应用程序可能会在操作系统启动程序后钩入您的程序。这条消息的意思是,它不知道特定内存块是如何分配的,因为它是在Instruments钩入您的程序之前分配的。所以它无法跟踪数据来源。它可能意味着您的程序中有更多实际泄漏问题,也可能不是。
我认为在大多数情况下,您可以从Instruments中启动您的程序,这样可以消除该问题。运行一次后,您应该能够再次按下记录按钮(红色圆圈),然后程序再次运行。在那种情况下,它应该可以访问您的应用程序所做的所有分配。
值得注意的是,我曾经遇到过这个消息,并且在同一个运行期间它消失了。好像突然找到了解释泄漏来源的数据。我也曾看到它在一次运行中出现,而在具有相同数据的后续运行中则消失了。在这种情况下,它似乎是Instruments的时间问题,而不是一个合法的泄漏问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接