Windows CE 上的內存泄露檢測

 

Windows CE 內存泄露檢測

 

同許多平臺一樣,內存泄露是始終是一個讓程序員頭疼的問題。

下面以一段簡單的代碼來介紹下如何快速檢測到內存泄露。

  

生成pdb文件,Debug模式下是默認生成的,Release需要手動設置。

 

 

 

 

 

 

 

下面是Codesnitch的簡要使用方法,同樣以上面的代碼爲例子。

1.       登陸http://entrek.com/evalform.asp 註冊試用賬號,隨便填就行了,但是郵箱不能隨便寫。

2.       不久後郵箱就會收到一封e-mail,有註冊碼,即試用版下載地址。  使用版能使用15天,且只能追蹤到前50個事件。

或者 http://www.entrek.com/products/codesnitch_std.msi

         http://www.entrek.com/products/codesnitch_std.msi

3.       下載安裝完成後運行程序,PC同步連接上WinCE/Windows Mobile設備,點擊File/Run從設備上選擇程序運行。

4.       等程序運行完後,首先看到的是Event窗口,記錄了每一次內存操作事件。選擇事件,還可以對應到響應源代碼的哪一行。例如本例子的11: char *p1 = new char[256];,配了256字節。

5. Summany 窗口記錄了一些統計信息。例如一共有多少次new,多少次delete。內存最大使用等等,一目瞭然。

6.       退出程序後,Results窗口會顯示本次程序運行結果的內存泄露信息。

我們可以清楚的看到顯示“Memory leak”,可以清楚的看到是第13行,分配了512的內存空間後,並沒有釋放,造成了內存泄露。

 

有了Codesnitch後,使得我們很快能夠準確的找出內存泄露發生的位置,迅速排除問題,提高了開發效率和程序的健壯性。

像上述代碼內存泄漏比較少,而且不會運行時間很長的話,因爲在程序退出的時候,OS會回收app所佔用的內存,但是如果一個app長期運行,且不斷有內存泄露的話,在WinCE這類系統資源很有限的情況下,很容易導致程序崩潰,或者更嚴重的問題。養成良好的編程習慣纔是關鍵。

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