Symbian內存泄露檢查工具HookLogger安裝及使用教程

在使用Symbian進行開發時經常會忘記釋放我們曾經使用過的內存或指針,從而導致我們在模擬器中最後退出軟件時會爆出提示,而檢驗遺漏的內存是程序員的天職所在,所以我們要想做好Symbian的開發,就必須熟悉如何查找內存,而Symbian SDK中提供了一個很好的工具HookLogger用來檢驗我們的內存操作。
     下面所提到的是2008年5月1日版(0.423 rc版)(對應的SDK是9.1/S60_3rd的)
     下載
      http://developer.symbian.com/main/downloads/files/HookLogger.msi這個是官方的鏈接地址。
     安裝:
     至於安裝並沒有像很多文章中所說的那麼複雜,我只是安裝在默認的目錄,而官方的視頻教程(後面會提到,也給過鏈接吧)也是一個象徵性的地址。
     使用:
     我也就不多說了,官方的視頻教程(http://developer.symbian.com /main/tools_and_sdks/developer_tools/supported/hook_logger/intro.htt)說的很清楚。如果有些地方因爲網速不能打開,那我就做個小的介紹。
     1、安裝完畢後啓動HookLogger的應用程序,這是可以啓動模擬器,一般會有一個提示說是你的HookLogger和模擬器沒有Hook上,你就直接點擊確定並關閉模擬器(不要急着把HookLogger也關了)。
      2、設置系統環境變量,新建一個環境變量,名稱爲epocroot,變量值爲/Symbian/9.1/S60_3rd。重新啓動操作系統。
     3、打開Windows的命令控制檯(開始菜單中單擊運行,輸入cmd然後就按下回車),跳轉到你所安裝的HookLogger的目錄(如默認的 C:/Program Files/HookLogger,這裏要在控制檯中輸入 cd C:/Program Files/HookLogger然後回車),輸入命令SetupHooks,回車;會彈出一些提示信息,接着輸入SetupHooks epocroot, 回車。
     4、在HookLogger的Filters的Tab頁面中,左側的下拉菜單中選擇Include only checked,在下面的Browse for EXE的按鈕中選中你要進行調試的那個工程的模擬器對應的exe程序,一般在C:/Symbian/9.1/s60_3rd/epoc32/release/winscw/udeb/中,而文件名一般是你的工程名。
     5、設置完畢後啓動模擬器,在模擬器中運行你要調試的那個程序,直到退出時爆出 Alloc ********(16位的地址),這時在HookLogger的Heap的Tab,單擊第三個按鈕(List all alloc),你會發現該頁面中有一列Ptr,在這一列中找到你的那個對應的地址(Alloc中的********),然後用鼠標選中這一行,單擊下面的第四個按鈕(Alloc details)這時會彈出一個對話框,找到第一個有關你的類名及函數名的位置(這裏就是根源所在),在#後的數字就是你的內存泄露所在的位置。
    6、跳到你的源文件中步驟4的位置,找出你的內存泄露出現在哪裏,這樣你就可以進行下一步調試了。

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