查找内存泄漏的代码
大部分的问题都是在一个函数内把参数alloc。而没有释放原来的内存。
一、
打开“开始”菜单中的“运行” 输入 :
cmd //进入命令行模式
devices //这个命令可以查看我们的开发机器上安装了几个symbian SDK
//S60_3rd_MR_2:com.nokia.s60 - default
//S60_2nd_FP3:com.nokia.series60
//S60_3rd_FP1:com.nokia.s60
//S60_3rd_MR_2:com.nokia.s60 - default 这个说明默认的SDK
//我们也可以执行 一下命令来更改 默认的 SDK
devices -setdefault @S60_2nd_FP3:com.nokia.series60
//如果不修改就不用执行了
//接下来我们给HOOKLOGGER 设置SDK,执行如下命令:
SetupHooks S60_3rd_MR_2:com.nokia.s60
//好了,安装和配置已经搞定了。
二、
使用时先启动它在启动模拟器,然后启动测试程序。当程序发生内存泄露时,模拟器会弹出AOLLOC 0xXXXXXX的错误提示,然后切换到hooklogger,进入thread面板,选择None后,选择测试程序对应的线程,右键点击,选择Show allocation的选项,然后程序会自动跳转到heap面板,此时查找模拟器提示的0xXXXXXX的数字,然后双击那个数字,它就会列出发生内存泄露的内存是在那个函数里被创建的,这样就可以到相应的函数去查找问题了。值得注意的是,hooklogger提供的是一个函数栈,越靠上的函数越接近真实分配内存的函数。
大部分的问题都是在一个函数内把参数alloc。而没有释放原来的内存。
一、
打开“开始”菜单中的“运行” 输入 :
cmd //进入命令行模式
devices //这个命令可以查看我们的开发机器上安装了几个symbian SDK
//S60_3rd_MR_2:com.nokia.s60 - default
//S60_2nd_FP3:com.nokia.series60
//S60_3rd_FP1:com.nokia.s60
//S60_3rd_MR_2:com.nokia.s60 - default 这个说明默认的SDK
//我们也可以执行 一下命令来更改 默认的 SDK
devices -setdefault @S60_2nd_FP3:com.nokia.series60
//如果不修改就不用执行了
//接下来我们给HOOKLOGGER 设置SDK,执行如下命令:
SetupHooks S60_3rd_MR_2:com.nokia.s60
//好了,安装和配置已经搞定了。
二、
使用时先启动它在启动模拟器,然后启动测试程序。当程序发生内存泄露时,模拟器会弹出AOLLOC 0xXXXXXX的错误提示,然后切换到hooklogger,进入thread面板,选择None后,选择测试程序对应的线程,右键点击,选择Show allocation的选项,然后程序会自动跳转到heap面板,此时查找模拟器提示的0xXXXXXX的数字,然后双击那个数字,它就会列出发生内存泄露的内存是在那个函数里被创建的,这样就可以到相应的函数去查找问题了。值得注意的是,hooklogger提供的是一个函数栈,越靠上的函数越接近真实分配内存的函数。