本文是對valgrind --help頁面的翻譯,其中若有不當之處,就請幫忙指出,先謝過了
用法:valgrind [選項] 程序 程序選項
選擇工具選項,[]裏面的是默認值:
--tool=<名字> 使用valgrind工具的名字,[memcheck]
所有valgrind工具的基本用戶選項,[]裏面的是默認值:
-h --help 顯示該幫助頁面
--help-debug 顯示該幫助頁面,附加調試選項
--version 顯示版本
-q --quiet 安靜的運行,只打印錯誤信息
-v --verbose 更詳細,--顯示混雜的額外信息
--trace-children=no|yes //?
--trace-children-skip=patt1,patt2... 指定一個--trace-children=yes應該沒有跟蹤進去的清單
--child-silent-after-fork=no|yes 忽略fork和exec之間的子進程的輸出
--track-fds=no|yes 追蹤打開文件描述符嗎?默認不追蹤
--time-stamp=no|yes 添加時間戳到日誌信息嗎?默認不添加
--log-fd=<number> 日誌信息導入文件描述符,默認爲標準錯誤輸出
--log-file=<file> 日誌信息導入到文件
--log-socket=ipaddr:port 日誌信息導入到套接字
valgrind錯誤報告的用戶選項:
--xml=yes 把錯誤輸出到xml中(僅對某些工具有效)
--xml-fd=<number> xml輸出到文件描述符
--xml-file=<file> xml輸出到文件
--xml-socket=ipaddr:port xml輸出到套接字
--xml-user-comment=STR 逐字拷貝STR到xml輸出
--demangle=no|yes 是否自動重組c++名字?默認是的
--num-callers=<number> 在棧跟蹤中顯示<number>個調用,默認12個
--error-limit=no|yes 在錯誤消息過多的時候是否停止顯示新的錯誤消息,默認是的
--error-exitcode=<number> 發現錯誤時返回的錯誤代碼,默認爲0,關閉該功能
--show-below-main=no|yes 是否在main函數下面繼續跟蹤棧?默認不跟蹤
--suppressions=<filename> 把錯誤描述壓入文件<filename>
--gen-suppressions=no|yes|all 是否爲錯誤打印壓入信息?默認不打印
--db-attach=no|yes 當檢測到錯誤的時候是否啓動調試器?默認不啓動
--db-command=<command> 啓動調試器的命令,默認/usr/bin/gdb -nw %f %p
--input-fd=<number> 輸入文件描述符,默認爲0
--dsymutil=no|yes 當有幫助時是否在mac os x系統上運行dsymutil,默認不運行
--max-stackframe=<number> //?
--main-stacksize=<number> 設置主線程的棧,默認使用ulimit的當前值
valgrind工具替換malloc的用戶選項:
--alignment=<number> 設置最小堆分配的對齊字節,默認爲8字節對齊
注意,這裏略過一段不常用的用戶選項,有興趣的可以參考valgrind --help的原始頁面。
memcheck的用戶選項:
--leak-check=no|summary|full 是否在退出時搜索內存泄露?默認顯示摘要信息
--leak-resolution=low|med|high 棧跟蹤時的差異度,默認差異高
--show-reachable=no|yes 在泄露檢測時顯示可用的塊嗎?默認不顯示
--show-possibly-lost=no|yes 泄漏檢測時顯示可能丟失的塊嗎?默認顯示
--undef-value-errors=no|yes 檢測未定義的值錯誤嗎?默認檢測
--track-origins=no|yes 顯示未定義的值的起源嗎?默認不顯示
--partial-loads-ok=no|yes 這裏很難解釋,請參考用戶手冊
--freelist-vol=<number> 釋放的塊隊列的卷,默認爲20000000
--workaround-gcc296-bugs=no|yes 自我說明
--ignore-ranges=0xPP-0xQQ[,0xRR-0xSS] 假設給定的地址是沒問題的
--malloc-fill=<hexnumber> 用給定的值填充malloc分配的區域
--free-fill=<hexnumber> 用給定的值填充free釋放的區域