当前位置:编程学习 > wap >>

塞班软件开发如何查找内存泄露

请问大家有没有一个好的方法检查工程中的内存泄露呢!我的工程中发现在绘图时发生了内存泄露,但是又定位不了具体在什么位置,各位大侠帮帮忙吧! --------------------编程问答-------------------- http://wenku.baidu.com/view/c1086ea20029bd64783e2cdf.html --------------------编程问答-------------------- 谢谢您,不过这个文档我看过了,现在还是不太清楚具体的操作。 --------------------编程问答-------------------- 用HookLogger --------------------编程问答-------------------- 这个软件刚下载下来,具体还不会使用呐!有详细的帮助文档不? --------------------编程问答-------------------- 可以参照下http://hi.baidu.com/richiechyi/blog/item/e158970fb4f8f4eaaa645766.html --------------------编程问答--------------------   在我连接模拟器时老出现错误信息呐!
--------------------编程问答-------------------- 为啥我一连接模拟器就报这个错误呢?

Failed upon instr(0x5A) at 60000001

易做图们这是啥问题呢? --------------------编程问答-------------------- 那个错不用 管他 --------------------编程问答--------------------  但是我的工程无论怎么运行,在退出时都不出现ALLOC:****的警告呀!反而显示“存储已满”的字样,我用的版本是:S60_5th_Edition_SDK_v1.0,操作界面时出现上述问题。 --------------------编程问答-------------------- hookloger工具很管用的 --------------------编程问答-------------------- 我起先学习的时候看过的两篇文章,但愿对大家有帮助,分享一下!
Qt 中内存管理机制:http://mobile.51cto.com/symbian-272280.htm
QT 内存泄露之QMainWindow:http://mobile.51cto.com/symbian-271849.htm --------------------编程问答--------------------
引用 11 楼 sdcxlizan 的回复:
我起先学习的时候看过的两篇文章,但愿对大家有帮助,分享一下!
Qt 中内存管理机制:http://mobile.51cto.com/symbian-272280.htm
QT 内存泄露之QMainWindow:http://mobile.51cto.com/symbian-271849.htm

谢谢您回帖,到时俺用的不是QT,有没有关于symbian的 --------------------编程问答--------------------
引用 10 楼 yang1994 的回复:
hookloger工具很管用的


俺用hooklogger工具检测到工程显示“E32USER-CBASE 66”这个错误。如何解决呢? --------------------编程问答-------------------- 塞班的大侠们,不懂的糊里糊涂的顶一个。 --------------------编程问答-------------------- This panic is raised if an attempt is being made to insert a cleanup item into a position on the cleanup stack reserved for marking the current TRAP nest level. In practice this error occurs if the call to CleanupStack::PushL() happens when there has been no call to TRAP(). 

检查下清除栈操作看看有没有问题 --------------------编程问答--------------------
引用 15 楼 student120 的回复:
This panic is raised if an attempt is being made to insert a cleanup item into a position on the cleanup stack reserved for marking the current TRAP nest level. In practice this error occurs if the c……

谢谢您的回复,这个清除栈能不能具体定位到哪一段代码呢?我的工程太大了,牵扯到清除栈的操作实在太多了~
--------------------编程问答--------------------
引用 9 楼 changanfounder 的回复:
 但是我的工程无论怎么运行,在退出时都不出现ALLOC:****的警告呀!反而显示“存储已满”的字样,我用的版本是:S60_5th_Edition_SDK_v1.0,操作界面时出现上述问题。
  存储已满,你试下在MMP中加入 EPOCHEAPSIZE 0x10000 0x8000000 扩大线程的堆内存清理工程在编译 --------------------编程问答-------------------- 这个要学习学习。~ --------------------编程问答--------------------
引用 17 楼 glovel0425 的回复:
引用 9 楼 changanfounder 的回复:

但是我的工程无论怎么运行,在退出时都不出现ALLOC:****的警告呀!反而显示“存储已满”的字样,我用的版本是:S60_5th_Edition_SDK_v1.0,操作界面时出现上述问题。
  存储已满,你试下在MMP中加入 EPOCHEAPSIZE 0x10000 0x8000000 扩大线程的堆内存清理工程在编译


在MMP中加入 EPOCHEAPSIZE 0x10000 0x8000000 扩大线程的堆内存清理工程在编译
能详细说说原因不?
我的原工程中的MMP文件中是这样的 EPOCHEAPSIZE 0x80000 0x100000,当我照您说的改成您的数据时无法生成可执行程序,可能是堆申请的空间太大了吧!但是该成EPOCHEAPSIZE 0x80000 0x1000000就基本可以了,我试试了操作了好几百下都没有问题了,之前操作二十几次就会出现“内存已满”。我想要是增加操作次数,比如操作上千次等等,是不是还是会显示“内存已满”呢?想知道具体原因? --------------------编程问答--------------------
引用 19 楼 changanfounder 的回复:
引用 17 楼 glovel0425 的回复:

引用 9 楼 changanfounder 的回复:

但是我的工程无论怎么运行,在退出时都不出现ALLOC:****的警告呀!反而显示“存储已满”的字样,我用的版本是:S60_5th_Edition_SDK_v1.0,操作界面时出现上述问题。
存储已满,你试下在MMP中加入 EPOCHEAPSIZE 0x10000 0x8000000……
 实际上我也是NewComer,给你找了篇博客你看下吧,希望对你有帮助。就是申请内存不够的原因,个人感觉
http://blog.csdn.net/flashtao613/article/details/3913957 --------------------编程问答-------------------- 这个是 栈上的,个人感觉堆上分配也是一样的原理吧。 --------------------编程问答--------------------
引用 21 楼 glovel0425 的回复:
这个是 栈上的,个人感觉堆上分配也是一样的原理吧。


symbian中EPOCHEAPSIZE的范围到底设置多少最好呢?  --------------------编程问答-------------------- 学习一下,最近一直也遇到内存不足的问题,一直没找到原因,顶起来 --------------------编程问答--------------------
引用 22 楼 changanfounder 的回复:
引用 21 楼 glovel0425 的回复:

这个是 栈上的,个人感觉堆上分配也是一样的原理吧。


symbian中EPOCHEAPSIZE的范围到底设置多少最好呢?
  我的MMP中定义的大小是EPOCSTACKSIZE                           0x5000 
EPOCHEAPSIZE                            0x10000 0x9000000  --------------------编程问答--------------------
引用 24 楼 glovel0425 的回复:
引用 22 楼 changanfounder 的回复:

引用 21 楼 glovel0425 的回复:

这个是 栈上的,个人感觉堆上分配也是一样的原理吧。


symbian中EPOCHEAPSIZE的范围到底设置多少最好呢?
  我的MMP中定义的大小是EPOCSTACKSIZE                           0x5000 
EPOCHEAPSIZE……


塞班中EPOCHEAPSIZE的范围不是0x5000(20KB)到0x400000(4MB),你设置的范围会不会太大了呢!太小了会导致存储已满,太大了会有什么影响不?并不是越大越好吧! --------------------编程问答--------------------
引用 25 楼 changanfounder 的回复:
引用 24 楼 glovel0425 的回复:

引用 22 楼 changanfounder 的回复:

引用 21 楼 glovel0425 的回复:

这个是 栈上的,个人感觉堆上分配也是一样的原理吧。


symbian中EPOCHEAPSIZE的范围到底设置多少最好呢?
我的MMP中定义的大小是EPOCSTACKSIZE                       ……
可能吧,我现在也在跟个项目,然后这个定义的时候不是我定义的,现在一直在用,真机上也能跑通的。 --------------------编程问答--------------------
引用 26 楼 glovel0425 的回复:
引用 25 楼 changanfounder 的回复:

引用 24 楼 glovel0425 的回复:

引用 22 楼 changanfounder 的回复:

引用 21 楼 glovel0425 的回复:

这个是 栈上的,个人感觉堆上分配也是一样的原理吧。


symbian中EPOCHEAPSIZE的范围到底设置多少最好呢?
我的MMP中定义的大小是EPOCS……


我也测试过,真机确实能用,但是我想要是操作次数足够多,他依然会显示“内存已满”,这里面的机理到底是怎么样的呢?你请教一下高手,有了新发现记得共享一下哦! --------------------编程问答-------------------- 好吧,帮顶了 ! --------------------编程问答-------------------- HookLogger 很方便的查找那个变量未delete --------------------编程问答--------------------
引用 29 楼 hexflash 的回复:
HookLogger 很方便的查找那个变量未delete

您能详细说说具体的用法不?我只会简单的操作,有没有特别好的技巧的,谢谢~ --------------------编程问答-------------------- 1. HookLogger正常安装

2. 依照HookLogger帮助文档,做好配置

3. 先启动HookLogger,再debug启动模拟器

4. 在HookLogger,选择thread选项卡,只勾选你要调试的应用程序进程。

5. 正常操作模拟器,退出。报内存泄露,这里可以看到泄露的内存地址。返回HookLogger,点heap选项卡,这里列出所有 thread中勾选的进程  分配的但当前还未释放的内存地址。找到模拟器报错对应的地址,双击进去就能看到具体是哪个指针没释放以及整个指针分配的函数调用栈。 --------------------编程问答-------------------- HookLogger --------------------编程问答-------------------- 谁有塞班系统的MT4外汇交易软件
补充:移动开发 ,  Symbian
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,