Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

3.5.3. Valgrind

Valgrind 提供了數種偵測與側寫的工具,以協助改善應用程式的效能與正確性。這些工具可以偵測與記憶體及執行續相關的錯誤,還有過度執行堆積、堆疊、與陣列等,讓使用者輕易地找到、修正程式碼中的錯誤。這些工具也可以側寫快取、堆積、分支預測,以找出增加應用程式速度、將應用程式使用的記憶體最小化之因素。
Valgrind 會在人為的 CPU 環境中執行應用程式,在應用程式執行時評測程式碼,藉此分析應用程式。然後 Valgrind 會針對應用程式執行至使用者指定的檔案子、檔案、或網路插槽,清楚印出每個相關程序的「註解」。這種等級的評測端視使用的 Valgrind 工具及設定而有所不同,但請注意,執行這評測碼可能會花上正常執行時間的 4-50 倍。
Valgrind 可直接用在應用程式上,而不需要重新編譯。然而,因為 Valgrind 使用了偵錯資訊,以找尋程式碼中的問題,因此如果應用程式與所支援的函式庫在編譯時並未啟用偵錯資訊,那麼強烈建議您納入此資訊,重新編譯。
至於 RHEL 6.4,Valgrind 整合了 gdb(GNU Project Debugger)以改進偵錯的效率。
Valgrind 的更多資訊可在《開發指南》中找到,網址為 https://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/?locale=zh-TW;或安裝 valgrind 套件後使用 man valgrind 指令以讀取 man page。相關的文件可以從以下地方找到:
  • /usr/share/doc/valgrind-<version>/valgrind_manual.pdf
  • /usr/share/doc/valgrind-<version>/html/index.html
欲知 Valgrind 如何用於側寫系統記憶體的資訊,請參閱〈節 5.3, “使用 Valgrind 側寫記憶體使用量”〉。