symbian 3rd內存泄露查找(轉帖)

http://www.sf.org.cn/Article/symbiandev/200709/20538.html

S60 3rd下如何使用HookLogger查找內存泄漏錯誤?

作者:dyw    文章來源:dyw的專欄    更新時間:2007-9-11 9:45:42

 

近日,在一個S60 3rd的項目裏,調試一個內存泄漏錯誤,總也找不到是哪裏出了問題。想到以前曾碰到過一個HookLogger的工具可以檢測內存泄漏,於是就下載過來。試用了一下效果相當不錯,很快就找到了發生錯誤的位置。下面具體描述在S60 3rd環境下怎麼安裝與使用HookLogger:

1、下載:
http://developer.symbian.com/main/downloads/files/HookLogger_Setup.zip

2、安裝:(假定使用的是S60 3rd MR版)
解壓HookLogger_Setup.zip後運行安裝程序,按默認安裝。

在S60 3rd下使用HookLogger,稍微有些問題,修改如下:
1) 在系統的環境變量設置裏,添加環境變量EPOCROOT,其值爲/Symbian/9.1/S60_3rd_MR/
2) (可用記事本)打開文件
C:/Program Files/Common Files/Symbian/tools/HookEUSER.pl
替換
    my $cmd = "copy $hooks_src";

    my $cmd = "copy /"$hooks_src/"";
以及替換
    $cmd = "$Bin/AttachDll $euser $hooks $hooked_euser";

    $cmd = "/"$Bin/AttachDll/" $euser $hooks $hooked_euser";
保存後退出。
3)打開一個控制檯(DOS窗口),改變當前目錄爲:
C:/Program Files/Common Files/Symbian/tools
然後運行
hookeuser winscw

3、使用:
先啓動HookLogger,然後啓動Emulator。運行你的程序,再現MemLeak直到異常退出。這時,轉到HookLogger的Heap頁,點擊下面的按鈕“List All Allocs”將列出發生內存泄漏的地址。然後雙擊某條信息即可查看明細情況,甚至可以打開源代碼文件,非常方便!

詳情可參考[注2]。

4、卸載:
參考2.3,運行
hookeuser -r winscw

評:HookLogger是一個好工具,在對內存泄漏毫無頭緒時,可幫你迅速找到問題之所在。

[注1] http://developer.symbian.com/main/tools/devtools/code/index.jsp#debugging
[注2] http://www.symbian.net.cn/blog/post/5.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章