這是一款由Sysinternals開發(fā)的Windows系統(tǒng)和應用程序監(jiān)視工具,目前Sysinternals已經被微軟收購,此款不僅結合了文件監(jiān)視和注冊表監(jiān)視兩個工具的功能,還增加了多項重要的增強功能,此工具支持64位Windows系統(tǒng)
很多人可能把這款工具只當成TaskManager(任務管理器)的替代品,其實這樣只能說是高射炮打蚊子,大材小用了,作為windows開發(fā)工程師,我極力推薦在編碼和調試過程中使用此工具,下面介紹一下Process Explorer在開發(fā)過程中的用處。
一、Process Explorer的樹形結構界面
1.準確的顯示的進程的父子關系
2.通過顏色可以判斷此進程處于的狀態(tài)和類型,是掛起還是正在退出,是服務進程還是普通進程。
二、顯示進程的系統(tǒng)信息
右鍵單擊標題欄-選擇Select Columns項,選擇你要觀察進程的某種特定的信息,這里有幾個選項,常用的有Process Image和Process Memory這兩個選項卡,其他的我就不截圖舉例了!
1.顯示進程的文件路徑(Image Path)
2.顯示進程命令行參數(shù)(Command Line)
3.顯示進程是64位進程還是32位的(Image Type)
4.顯示進程當前所在的Session ID(session ID)
5.顯示進程當前的權限,是系統(tǒng)用戶權限還是網絡管理員權限還是普通管理員權限(User Name)
6.顯示當前進程的Gdi對象個數(shù),內核對象個數(shù),線程個數(shù)。
三、顯示當前進程所加載的DLL
選擇View —> Lower Pane View —> DLLs
1.通過這種方式可以觀察,我們的進程是否被其他程序注入DLL
2.通過這種方式了解當前進程使用了那些編程技術,如圖可見當前進程用到了Gdi+
3.可以修改Pane View的選項卡,讓其顯示更多的內容,比如DLL基地址,DLL內存相關信息等
四、顯示當前進程所占用的系統(tǒng)資源句柄
選擇View —> Lower Pane View —> DLLs
1.查看當前進程所占用的資源句柄表
2.可以分析進程的邏輯:如圖當前TeamViewer的服務進程創(chuàng)建了一個Event事件,并且占用一個Log文件
3.可以檢查自己的程序是否有內核句柄泄露。
五、操控進程以及顯示進程的內部信息(這類信息是屬于當前進程的)
右鍵單擊進程
1.可以結束當前進程,或者當前進程樹
2.可以掛起、重啟、從掛其中恢復一個進程
3.查看進程信息(如圖-選擇Properties)
1.可以看到當前進程的用戶組信息
2.可以看到當前進程申請了哪些特權
選擇Environment選項卡,可以看到當前進程的環(huán)境變量,如果自動化編譯或者使用一些開源軟件,查看其環(huán)境變量是很重要的一環(huán)。
六、搜索功能(Ctrl+F)
為什么搜索功能單獨拉出來說呢,我個人覺得這個功能在很多地方都可以用到,編碼的時候可以查看哪個事件被誰占用了,你直接搜事件名稱就可以了,如果你像刪除一個目錄怎么也刪除不掉,就是說某某文件被人占用,那你可以搜索一下你需要刪除的目錄路徑
如圖:TeamViewer這個文件夾正在被一個服務占用,這樣我只需要把這個服務停止,就可以刪除了,常見的還有U盤被占用不讓卸載等等!