Valgrind的使用

valgrind是GPL軟件,用於LINUX系統的內存調試和代碼分析,可以在代碼中監視內存的使用情況,比如C語言中的malloc和free,c++中的new和delete

使用valgrind可以檢查內存和線程中的BUG。

valgrind包含許多工具,比如memcheck ,cachegrind,helgrind,callgrind,massif

memcheck主要檢查以下錯誤

1.使用未初始化的內存

2.使用已經釋放的內存

3.使用超過malloc分配的內存空間

4.對堆棧的非法訪問

5.申請的空間是否有釋放

6.malloc/free和new/delete是否匹配

7.src/dst的重疊

cachegrind的功能

它模擬CPU的緩存,能夠精確的指出程序的內存的丟失和命中,如果需要還能爲我們提供cache的丟失次數

helgrind爲我們分析多線程中出現的問題,比如競爭,鎖定等狀態

massif堆棧分析器

它能測量程序在堆棧區中使用了多少內存,它告訴我們堆管理塊,棧大小,堆塊大小

valgrind的使用

適用於Memcheck工具的相關選項:

  1. -leak-check=no|summary|full 要求對leak給出詳細信息? [summary]
  2. -leak-resolution=low|med|high how much bt merging in leak check [low]
  3. -show-reachable=no|yes show reachable blocks in leak check? [no]

 

 

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