keil能不能查到某一块内存时哪个变量在使用?

2019-08-17 02:05发布

本帖最后由 Owen 于 2017-7-10 11:24 编辑

就是在用stm32f2的时候,内存溢出了,现在搞不清楚是内存泄漏导致的溢出或是其他什么原因,我想核对每次程序运行没有被释放的堆内存是哪个变量在使用,除了一个变量一个变量核对,有其他什么方法么
我这个项目是C++的,堆溢出了,有很多类,很多很多变量,所以不知道是哪个类出了问题,所以从内存上看是哪个地址的值没有释放,反过来找占用这个内存的变量。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
mon51
1楼-- · 2019-08-18 17:15
K.O.Carnivist 发表于 2017-7-10 17:26
Access Breakpoint 配合 Call Stack + Locals 窗口实现这个没有什么问题啊,基本调试功能有什么可质疑的 ...

不知道变量名字,只知道内存里的值,这个对应哪个变量,用断点如何有用?运行时会有许多变量值在变化。请看图:
Call Stack + Locals 窗口显示的变量名,用断点当然可以知道对应的值。这是任何IDE平台所有的基本功能。
现在问题是:从内存上看是哪个地址的值没有释放,反过来找占用这个内存的变量。
只有MEMORY窗口才是显示内存的值,按你所说的,就是只知道这里的值,去找到变量。
也不想多说了。
12.png 13.png 14.png
myxiaoniao
2楼-- · 2019-08-18 22:59
楼主的意思,明明是想监视某个固定地址上的值,看标题却不是这么个意思,看帖子内容也不是这个意思,还说是堆内存,临时变量,你要知道堆内存临时变量在整个运行期并不会对应固定地址,虽然一开始的时候可能会对应相对固定的地址。。。

最后还说找到答案了,其实就是自己没有清楚表达意思,老实说我也给你带偏了整糊涂了,你最后所谓的解决办法并没有什么特别高明的地方
Owen
3楼-- · 2019-08-19 03:03
 精彩回答 2  元偷偷看……

一周热门 更多>