2013-03-22 131 views
0

我正在做一些我正在運行的軟件的分析工作。該軟件似乎有一些內存問題,沿線難以追查。我們決定使用Sysinternals VMMap來跟蹤軟件使用的內存。在批處理腳本中使用VMMap

我們有VMMap使用Windows調度程序每20秒導出一次使用情況,以啓動一個批處理腳本,該腳本將目標進程PID拉回並啓動VMMap。該過程運行一段時間,輸出顯示出來的目錄,但過了一段時間停止。 Windows調度程序報告作業正常運行,並在觸發器意味着再次沒有輸出時啓動另一個實例。

經過一番調查後,它看起來像VMMap無法打開進程,並試圖通過其GUI來報告錯誤。由於我們正在批量運行,因此我們無法看到此錯誤消除它。這導致了許多過程的產生,但實際上並沒有做任何事情。

有沒有人在使用VMMap時遇到過這個問題,或者知道任何可能有用的東西?我想可能有一些我可以通過的標誌抑制消息,或者我可以在批處理中處理它,但Google沒有幫助,也沒有Sysinternals論壇。任何幫助將非常感激。

回答

0

VMMap是一個GUI工具,所以試圖以自動方式捕獲它的輸出將是困難的。相反,嘗試使用另一個SysInternals工具Handle,該工具捕獲許多相同的信息,但在命令行上導出/報告它可以更容易地捕獲它。或者,不要在使用VMMap時以自動重複的方式運行輸出,而是讓腳本以某種方式檢測錯誤或缺少預期的結果/數據並停止,以便可以檢查GUI輸出。

+1

這是我們最終選擇的方法。我們通過在調用之前重新檢查傳入一個無效PID的可能性最小化(因爲它在for循環中,有時PID在它到達之前關閉),並且在我們知道它們不應該正在運行時關閉正在運行的任何VMMap進程。 – MattD 2013-03-25 14:47:19

0

所有Sysinternals工具在第一次在新機器上啓動以接受許可時彈出一個同意對話框。我認爲您確實將該工具部署到生產機器上,並試圖顯示同意對話框,但沒有人按下確定。

他們基本上在機器上創建一個註冊表項,如果您需要全自動部署,或者您可以在目標機器上爲相關用戶啓動一次,那麼您可以僞造該註冊表項。

+0

我們已經確認接受初始許可證對話框,過程發起並創建了一段時間的數據,但一段時間後停止 – MattD 2013-03-25 14:42:16