創提部落格
希望我們能與您分享和探討成長中的點點滴滴
通過DT10檢測記憶體洩漏問題
分享到
DT10是新一代的動態測試工具,可以長時間跟蹤記錄目的程式執行情況,獲取目的程式動態執行資料,説明進行難於重現的Bug錯誤分析,覆蓋率檢測,性能測試,變數跟蹤等等功能。
C/C++代碼中,記憶體洩漏一直是開發人員最頭痛的問題之一,本文介紹如何通過DT10説明使用者查找記憶體洩露問題。
請看如下代碼片段,代碼中有使用malloc和free函數進行記憶體分配和釋放,為演示DT10如何説明我們檢測記憶體洩漏,以下面代碼為例。
在DT10中創建一個工程,如下圖:
DT10可自動插入測試點,而對於記憶體洩漏檢測,目前支援手工插入測試點,插入方式如下:
在malloc函數後點擊右鍵,選擇Insert Test Point -> Normal Step,並在free函數之後,以同樣的方式插入測試點,測試點插入之後,如下圖:
然後重新構建工程並執行,使用DT10收集測試結果,收集之後得到的Malloc函數和Free函數執行次數,使用者只需判斷Malloc的次數和Free次數是否一致即可知道是否存在記憶體洩漏,從而説明使用者檢測C/C++代碼中的一些記憶體洩漏問題。如下圖:malloc被調用100次,但free只調用1次,那麼顯然這段代碼存在記憶體洩漏問題。