大型C 工程測試記憶體洩漏的一些個人總結方法

2021-09-12 16:29:02 字數 568 閱讀 7296

測試工具:

cppcheck;

valgrind;

實時跑系統工程,檢視cpu增加情況;

測試方法:

1)cppcheck測試靜態程式方法

通過執行cppcheck可以直觀的看到是否有new的指標沒有釋放;

2)valgring測試方法:

輸入指令:valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all --trace-children=yes -v --log-file=mem_leak.log ./main

注:輸入指令後生成mem_leak.log,裡面主要看definitely(絕對洩漏)部分,可以定位到記憶體洩漏的具體位置;

實時長時間執行**:

測試結果說明

引數說明:virt(虛擬記憶體)、res(物理記憶體)、shr(共享記憶體值)

注:res體現記憶體是否洩露, 當res隨著時間的推移增長時,表示記憶體洩漏

關於C 記憶體洩漏的一些簡單理解

關於類的自定義賦值運算子和複製建構函式的重要性。反面例子 class a a private int ptr void donothing a dummy 值傳遞物件的危害 int main y越界,呼叫析構函式刪掉了y.ptr,同時x.ptr也被刪除 它們指向相同 a z 3 這條語句後,x.pt...

關於介面測試的一些個人總結

什麼是介面測試?所謂介面,我理解的就是乙個開關,我們通過在外面向開關發出一些指令如 開燈 關燈 調亮 調暗 等,檯燈會根據你的指令給你對應的反饋。如果你發出了調暗的指令,檯燈直接給你關掉了,那就是說明這個介面返回是有問題的。常見請求方式 get 通過請求url得到資源 post 用於新增新的內容 p...

關於記憶體洩漏檢測的一些方法

define crtdbg map alloc 顯示記憶體塊型別和記憶體塊分配編號 include 在輸出視窗檢視記憶體洩漏資訊,在程式結束前加入 crtdumpmemoryleaks 退出程式位置固定時 或者 crtsetdbgflag crtdbg alloc mem df crtdbg lea...