!下面大家還是跟著我們5636網咖聯盟的網咖系統欄目一起去看看吧! Linux系統下的Mtrace工具主要能夠檢測一些記憶體分配和洩漏的失敗等。使用Mtrace來除錯程式有4個基本步驟,還需要用到GNUC函式庫裡面的一些輔助的函式功能:
1.需要包含標頭檔案,並且在main()函式的最開始包含一個函式呼叫:mtrace()。由於在main函式的最開頭呼叫了mtrace(),所以這個程序後面的一切分配和釋放記憶體的操作都可以由mtrace來跟蹤和分析。
2.定義一個環境變數,用來指示一個檔案。該檔案用來輸出log資訊。如: $exportMALLOC_TRACE=mymemory.log
3.正常執行程式。此時程式中的關於記憶體分配和釋放的操作都可以記錄下來。
4.然後用mtrace使用工具來分析log檔案。如: $mtracetestmem$MALLOC_TRACE 這裡需要注意的是在很多嵌入式的環境中,並不提供export命令,也沒有記錄環境變數的檔案。唯一的辦法就是把環境變數加到應用程式中。在Glibc庫中有putenv函式,就是寫入環境變數的。 這個其實還是要看Glibc!呼叫muntrace函式,log檔案就生成了。
!下面大家還是跟著我們5636網咖聯盟的網咖系統欄目一起去看看吧! Linux系統下的Mtrace工具主要能夠檢測一些記憶體分配和洩漏的失敗等。使用Mtrace來除錯程式有4個基本步驟,還需要用到GNUC函式庫裡面的一些輔助的函式功能:
1.需要包含標頭檔案,並且在main()函式的最開始包含一個函式呼叫:mtrace()。由於在main函式的最開頭呼叫了mtrace(),所以這個程序後面的一切分配和釋放記憶體的操作都可以由mtrace來跟蹤和分析。
2.定義一個環境變數,用來指示一個檔案。該檔案用來輸出log資訊。如: $exportMALLOC_TRACE=mymemory.log
3.正常執行程式。此時程式中的關於記憶體分配和釋放的操作都可以記錄下來。
4.然後用mtrace使用工具來分析log檔案。如: $mtracetestmem$MALLOC_TRACE 這裡需要注意的是在很多嵌入式的環境中,並不提供export命令,也沒有記錄環境變數的檔案。唯一的辦法就是把環境變數加到應用程式中。在Glibc庫中有putenv函式,就是寫入環境變數的。 這個其實還是要看Glibc!呼叫muntrace函式,log檔案就生成了。