使用仪器查找代码中的堆栈溢出

Posted

技术标签:

【中文标题】使用仪器查找代码中的堆栈溢出【英文标题】:Using instruments to find overflow of the stack in code 【发布时间】:2012-12-05 06:32:04 【问题描述】:

正如文档所说,分配对内存进行堆分析。

但是,我感觉我的应用程序崩溃了,因为堆栈上存储了大量数据,这可能会溢出。

我该如何分析?请帮忙。谢谢!

【问题讨论】:

检查内存监视器。更多详情***.com/questions/5518918/… 【参考方案1】:

首先构建您的应用程序以进行分析(Command +I);运行。选择分配工具,使用(使用)应用程序。

在分配中,您会发现 Live Bytes 部分,这是您的应用程序的当前 RAM 利用率堆栈上的数据我想这是您在问题中谈论的RAM)。

释放当前未使用的对象将减少活动字节数

总字节数 - 所有字节(创建和销毁 + 当前活动字节)。

For Further reference refer Instruments Programming Guide.

【讨论】:

【参考方案2】:

创建和比较“堆”是开始缩小乍一看没有明显内存管理错误的代码部分的好方法。请参阅我在this question 上的回答以进一步阅读或直接查看this great article。

【讨论】:

以上是关于使用仪器查找代码中的堆栈溢出的主要内容,如果未能解决你的问题,请参考以下文章

了解 C 中的堆栈溢出处理

怎么解决 LINUX 堆栈溢出内存的问题

避免包装 DLL 中的堆栈溢出

如何修复 Lisp 中的堆栈溢出错误

缓冲区溢出(vs)缓冲区溢出(vs)堆栈溢出[重复]

堆栈中的缓冲区溢出