Valgrind概述
1.1。Valgrind概述
Valgrind是構建動態(tài)分析工具的工具框架。它配有一組工具,每個工具都執(zhí)行某種調試,分析或類似任務,可以幫助您改進程序。Valgrind的架構是模塊化的,因此可以輕松創(chuàng)建新工具,而不會影響現(xiàn)有的結構。
標準提供了許多有用的工具。
Memcheck是一個內存錯誤檢測器。它可以幫助您使程序,特別是C和C ++編寫的程序更正確。
Cachegrind是一個緩存和分支預測分析器。它可以幫助您使程序運行速度更快。
Callgrind是生成緩存分析器的調用圖。它與Cachegrind有一些重疊,但也收集了Cachegrind沒有的一些信息。
Helgrind是一個線程錯誤檢測器。它可以幫助您使您的多線程程序更正確。
DRD也是線程錯誤檢測器。它與Helgrind類似,但使用不同的分析技術,因此可能會發(fā)現(xiàn)不同的問題。
Massif是一個堆分析器。它可以幫助您使程序使用更少的內存。
DHAT是一種不同類型的堆分析器。它有助于您了解塊生命周期,塊利用率和布局效率低下的問題。
SGcheck是一個可以檢測堆棧和全局數(shù)組超出的實驗工具。它的功能與Memcheck的功能相輔相成:SGcheck發(fā)現(xiàn)Memcheck不能出現(xiàn)問題,反之亦然。
BBV是一個實驗性SimPoint基本塊向量生成器。對于進行計算機體系結構研究和開發(fā)的人來說,是有用
還有一些對大多數(shù)用戶無用的小工具:?Lackey是一個示例工具,用于說明一些工具基礎知識;?和Nulgrind是最小Valgrind的工具,做任何分析或儀器,并僅用于測試目的。
Valgrind與CPU和操作系統(tǒng)的細節(jié)密切相關,在較小程度上與編譯器和基本C庫相關。盡管如此,它還支持一些廣泛使用的平臺,詳見http://www.valgrind.org/。
Valgrind是通過標準的Unix建?./configure,?make,make install的過程;?完整的詳細信息在發(fā)行版的README文件中給出。
Valgrind是在許可下的GNU通用公共許可證,版本2,valgrind/*.h您可能希望在代碼中包含頭文件(例如?valgrind.h,memcheck.h,?helgrind.h等)下BSD風格的許可證下發(fā)布的,所以你可能在包括它們的代碼,而不用擔心許可證沖突。一些PThreads測試用例pth_*.c,摘自O'Reilly&Associates,Inc.出版的Bradford Nichols,Dick Buttlar&Jacqueline Proulx Farrell,ISBN 1-56592-115-1的“Pthreads Programming”
如果您向Valgrind提供代碼,請確保您的貢獻被許可為“GPLv2”,或(作為您選擇)的任何更高版本。這是為了讓將來許可證容易升級到GPLv3的可能性。如果要修改VEX子目錄中的代碼,請參閱發(fā)行版中的VEX / HACKING.README文件。
1.2。如何瀏覽本手冊
本手冊的結構反映了Valgrind本身的結構。首先,我們描述Valgrind核心,如何使用它,以及它支持的選項。然后,每個工具在本手冊中都有自己的章節(jié)。您只需要閱讀核心文檔以及實際使用的工具,盡管您至少可以了解所有工具的用途,但您可能會發(fā)現(xiàn)有用。如果您是新來的,您可能需要運行Memcheck工具,您可能會發(fā)現(xiàn)“Valgrind快速入門指南”很有用。
請注意核心了解一些命令行選項,并且這些工具有自己的選擇,他們知道。這意味著沒有描述接受的所有選項的中心位置 - 您必須閱讀Valgrind的核心和您要使用的工具的選項文檔?。
總結
以上是生活随笔為你收集整理的Valgrind概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用valgrind检查内存问题
- 下一篇: snapshot相关