日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

【调试】Linux下超强内存检测工具Valgrind

發(fā)布時(shí)間:2023/12/13 linux 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【调试】Linux下超强内存检测工具Valgrind 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【調(diào)試】Linux下超強(qiáng)內(nèi)存檢測工具Valgrind

?

內(nèi)容簡介


  • Valgrind是什么?
  • Valgrind的使用
  • Valgrind詳細(xì)教程
  • 1. Valgrind是什么?


    Valgrind是一套Linux下,開放源代碼(GPL
    V2)的仿真調(diào)試工具的集合。Valgrind由內(nèi)核(core)以及基于內(nèi)核的其他調(diào)試工具組成。

    內(nèi)核類似于一個(gè)框架(framework),它模擬了一個(gè)CPU環(huán)境,并提供服務(wù)給其他工具;而其他工具則類似于插件 (plug-in),利用內(nèi)核提供的服務(wù)完成各種特定的內(nèi)存調(diào)試任務(wù)。

    Valgrind的體系結(jié)構(gòu)如下圖所示:

    Valgrind包括如下一些工具:

    • Memcheck:這是valgrind應(yīng)用最廣泛的工具,一個(gè)重量級的內(nèi)存檢查器,能夠發(fā)現(xiàn)開發(fā)中絕大多數(shù)內(nèi)存錯(cuò)誤使用情況,比如:使用未初始化的內(nèi)存,使用已經(jīng)釋放了的內(nèi)存,內(nèi)存訪問越界等。

    • Callgrind:它主要用來檢查程序中函數(shù)調(diào)用過程中出現(xiàn)的問題。

    • Cachegrind:它主要用來檢查程序中緩存使用出現(xiàn)的問題。

    • Helgrind:它主要用來檢查多線程程序中出現(xiàn)的競爭問題。

    • Massif:它主要用來檢查程序中堆棧使用中出現(xiàn)的問題。

    • Extension:可以利用core提供的功能,自己編寫特定的內(nèi)存調(diào)試工具。

    2. Valgrind的使用

    為了使valgrind發(fā)現(xiàn)的錯(cuò)誤更精確,如能夠定位到源代碼行,建議在編譯時(shí)加上-g參數(shù),編譯優(yōu)化選項(xiàng)請選擇O0,雖然這會降低程序的執(zhí)行效率。

    這里用到的示例程序文件名為:test.c,選用的編譯器為gcc。

    生成可執(zhí)行程序

    gcc -g -O0 test.c -o test

    生成可執(zhí)行程序test之后,如何使用Valgrind來生成內(nèi)存的記錄文件呢?一般這樣使用:

    valgrind --leak-check=full --log-file=test_valgrind.log --num-callers=30 ./test
    • --log-file 后面的test_valgrind.log是指定生成的日志文件名稱。

    • --num-callers 后面的60是生成的每個(gè)錯(cuò)誤記錄的追蹤行數(shù)。30是隨便設(shè)定的,如果沒指定,默認(rèn)是12行貌似(有可能有的追蹤行就沒顯示)。

    • --leak-check=full 表示開啟詳細(xì)的內(nèi)存泄露檢測器。

    3. Valgrind詳細(xì)教程

    詳細(xì)教程請看這篇文章:
    應(yīng)用Valgrind發(fā)現(xiàn)Linux程序的內(nèi)存問題


    我是謝恩銘,在法國巴黎奮斗的嵌入式軟件工程師。
    目前工作是Android嵌入式和app開發(fā)。
    熱愛生活,喜歡游泳,略懂烹飪。

    ?Linux探

    轉(zhuǎn)載于:https://www.cnblogs.com/zhehan54/p/6362306.html

    總結(jié)

    以上是生活随笔為你收集整理的【调试】Linux下超强内存检测工具Valgrind的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。