導航:首頁 > 編程大全 > 進程診斷工具

進程診斷工具

發布時間:2023-06-27 04:39:33

1. linux下一般怎麼診斷是哪個進程有memory leak

可以使用Valgrind工具

Valgrind包括如下一些工具:

Memcheck。這是應用最廣泛的工具,一個重量級的內存檢查器,能夠發現開發中絕大多數內存錯誤使用情況,比如:使用未初始化的內存,使用已經釋放了的內存,內存訪問越界等。這也是本文將重點介紹的部分。

Callgrind。它主要用來檢查程序中函數調用過程中出現的問題。

Cachegrind。它主要用來檢查程序中緩存使用出現的問題。

Helgrind。它主要用來檢查多線程程序中出現的競爭問題。

Massif。它主要用來檢查程序中堆棧使用中出現的問題。

Extension。可以利用core提供的功能,自己編寫特定的內存調試工具

Valgrind使用

用法:valgrind[options] prog-and-args [options]: 常用選項,適用於所有Valgrind工具

-tool=<name> 最常用的選項。運行valgrind中名為toolname的工具。默認memcheck。

h –help 顯示幫助信息。

-version 顯示valgrind內核的版本,每個工具都有各自的版本。

q –quiet 安靜地運行,只列印錯誤信息。

v –verbose 更詳細的信息, 增加錯誤數統計。

-trace-children=no|yes 跟蹤子線程? [no]

-track-fds=no|yes 跟蹤打開的文件描述?[no]

-time-stamp=no|yes 增加時間戳到LOG信息? [no]

-log-fd=<number> 輸出LOG到描述符文件 [2=stderr]

-log-file=<file> 將輸出的信息寫入到filename.PID的文件里,PID是運行程序的進行ID

-log-file-exactly=<file> 輸出LOG信息到 file

-log-file-qualifier=<VAR> 取得環境變數的值來做為輸出信息的文件名。 [none]

-log-socket=ipaddr:port 輸出LOG到socket ,ipaddr:port

LOG信息輸出

-xml=yes 將信息以xml格式輸出,只有memcheck可用

-num-callers=<number> show <number> callers in stack traces [12]

-error-limit=no|yes 如果太多錯誤,則停止顯示新錯誤? [yes]

-error-exitcode=<number> 如果發現錯誤則返回錯誤代碼 [0=disable]

-db-attach=no|yes 當出現錯誤,valgrind會自動啟動調試器gdb。[no]

-db-command=<command> 啟動調試器的命令行選項[gdb -nw %f %p]

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

-leak-check=no|summary|full 要求對leak給出詳細信息? [summary]

-leak-resolution=low|med|high how much bt merging in leak check [low]

-show-reachable=no|yes show reachable blocks in leak check? [no]

Valgrind使用舉例(一)

下面是一段有問題的C程序代碼test.c

#i nclude <stdlib.h>
void f(void)
{
int* x = malloc(10 * sizeof(int));
x[10] = 0; //問題1: 數組下標越界
} //問題2: 內存沒有釋放

int main(void)
{
f();
return 0;
}

1、 編譯程序test.c
gcc -Wall test.c -g -o test
2、 使用Valgrind檢查程序BUG
valgrind --tool=memcheck --leak-check=full ./test

使用未初始化內存問題

問題分析:

對於位於程序中不同段的變數,其初始值是不同的,全局變數和靜態變數初始值為0,而局部變數和動態申請的變數,其初始值為隨機值。如果程序使用了為隨機值的變數,那麼程序的行為就變得不可預期。

下面的程序就是一種常見的,使用了未初始化的變數的情況。數組a是局部變數,其初始值為隨機值,而在初始化時並沒有給其所有數組成員初始化,如此在接下來使用這個數組時就潛在有內存問題。

輸出結果顯示,在該程序的第15行,進行了非法的寫操作;在第16行,進行了非法讀操作。准確地發現了上述問題

2. hp伺服器硬體診斷工具ProLiant是什麼

惠普公司(Hewlett-Packard Development Company, L.P.,簡稱HP)總部位於美國加利福尼亞州的帕羅奧多(Palo Alto),下面是我帶來的關於hp伺服器硬體診斷工具ProLiant是什麼的內容,歡迎閱讀!

hp伺服器硬體診斷工具ProLiant是什麼?

一、伺服器測試的准備工作:

測試軟盤的製作方式:

1)通過運行隨機的SMART START 光碟下DSKBLDRSETUP.EXE程序獲得一張測試軟盤..

2)通過從http://www.compaq.com/support/files/server/us/index.html下載軟體包, 再解包, 獲得一張測試軟盤..

二、伺服器測試的預備知識:

如下圖所示, PROLIANT 伺服器的測試軟盤可提供三種測試方式, 即

Quick Check Diagnostics(快速測試): 將使用最短的時間完唯譽前成測試, 但它非全面硬體測試方式.

Automatic Diagnostics(自動測試): 對系統進行最全面的硬體檢測, 但無法選擇更多測試內容.

Prompted Diagnostics(提示測試): 可對系統進行最全面的硬體檢測, 且提供允許可選測試內容界面. 但須熟悉系統配置.

2) Version S11.01 A 以前的測試程序, 根據具體的硬體配置不同, 若採用全面硬體測試方式, 即Prompted Diagnostics及Automatic Diagnostics, 可花費半天或兩, 三天不等的時間.

Version S11.01 A(包括此版本) 以後的測試程序由於採用新的檢測機制, 時間大大縮小, 如 512MB 內存檢測僅須不到1小時.

3) 測試前, 若伺服器有磁帶機, 須將一空白磁帶置入其中. 若有光碟機, 須將一光碟置入. 所有電話線須與伺服器MODEM斷開.

4) 建議在測試完成後, 保存測試結果 報告 .

三. 以下將以 Automatic Diagnostics 為例, 詳細介紹測試步驟.

步驟一: 將Diagnostics 盤插入伺服器軟碟機, 加電, 系統將自動從軟碟機引導. 屏幕顯示如下菜單:

選擇Computer Checkup (TEST) 即進入伺服器硬體測試方式選項

步驟二. 如下圖所示, 選擇Automatic Diagnostics .

步驟三: 選擇Automatic Diagnostics後, 屏幕顯示以下菜單:

建議選擇 Unattended Testing 及Log to DIAG.LOG 兩項, 然後選擇OK, 進入測試循環次數選擇界面.

根據客戶需要及時間安排定義測試循環次數後, 選擇OK, 屏幕提示如下信息.

選擇No, 屏幕提示如下:

若串口有電纜連接, 請移開此電纜, 然後選擇Continue, 則屏幕顯示以下測試進程光條:

虛畝步指清驟四: 當測試完成後, 如下所示, 屏幕返回以前菜單. 選擇Test Log 選項.

選擇Test Log 選項. 進入以下界面, 可檢查測試結果.

選擇Save to DIAG.LOG, 則在軟盤上存儲一測試結果拷貝. 備檔. 退出伺服器測試項即可.

看了hp伺服器硬體診斷工具ProLiant是什麼 文章 內容的人還看:

1. hp液晶顯示器怎麼拆

2. hp顯示器怎麼調解析度

3. cpu最高主頻是什麼

4. hp顯示器怎麼樣

5. hp2009f顯示器怎麼拆

6. hp顯示器怎麼拆開

7. hp2009f顯示器無法關閉怎麼辦

8. hp顯示器底座怎麼拆

9. hp顯示器怎麼調亮度

10. hp顯示器底座怎麼拆開

閱讀全文

與進程診斷工具相關的資料

熱點內容
snt修改器安裝教程 瀏覽:663
白雜訊文件是什麼 瀏覽:723
java打開新窗口 瀏覽:195
如何同步七天前的數據 瀏覽:95
從來不開數據為什麼會消耗流量 瀏覽:938
固態win10裝機教程 瀏覽:539
u盤可以用但不能保存文件 瀏覽:625
多個名稱多個文件名 瀏覽:11
如何恢復隱藏的文件夾 瀏覽:474
u盤插入電腦直接彈出文件 瀏覽:317
jt是什麼文件 瀏覽:353
法律助手app 瀏覽:937
雲存儲文件路徑 瀏覽:523
硬碟有點壞文件復制到桌面很慢 瀏覽:894
尼爾pod技能升級 瀏覽:586
vb編程打開pdf文件 瀏覽:617
qq七彩氣泡id大全 瀏覽:963
iphone4隻能免提說話才有聲音 瀏覽:79
CNC雕刻機用什麼軟體編程 瀏覽:173
aoe什麼文件 瀏覽:111

友情鏈接