通過DT10監控堆記憶體分配情況

創提科技
2021/09/16

分享到

DT10是新一代的動態測試工具,可以長時間跟蹤記錄目的程式執行情況,獲取目的程式動態執行資料,説明進行難於重現的Bug錯誤分析,覆蓋率檢測,性能測試,變數跟蹤等等功能。
 
嵌入式項目中,我們經常使用malloc和free函數動態分配記憶體,如何監控記憶體分配情況?如何動態瞭解程式執行過程中記憶體使用情況,本文介紹如何通過DT10説明使用者監控堆記憶體分配情況。
 
請看如下代碼片段,代碼中有使用malloc和free函數進行記憶體分配和釋放,為演示DT10如何説明我們檢測記憶體洩漏,以下面代碼為例。


4.jpg

 
DT10中創建一個工程,如果要檢測Memory在堆中分配動態變化情況,需要添加一個輔助檔dt_memory_leak.c檔,用以記錄其HeapSize的大小,將該檔也導入到DT10的工程中,並針對HeapSize插入測試點,如下圖:


5.jpg

 
然後重新構建並執行程式,同時打開DT10監聽程式收集測試結果資料,並即時打開Multi Wave Scope視窗,在其中設置單獨針對HeapSize進行監控,這樣可以即時查看程式運行過程中HeapSize的變化情況:


6.jpg