2010-10-20 130 views
0

我是新來使用UMDH,和我有一些麻煩了解如何與一些它輸出的錯誤進行。我按照典型的使用(從MS網站):瞭解UMDH警告

gflags -i OCES.exe +ust 

在另一個終端窗口:

OCES.exe 

然後再回到原來的終端窗口:

umdh -p:5712 -f:out1.txt 

但我從UMDH

Warning: 
Warning: UMDH didn't find any allocations that have stacks collected. 
Warning: Use gflags to enable allocation stack collection. 
Warning: Restart the application for the setting to be in effect. 
Warning: A 32bit GFLAGS must be used. The command is: 
Warning: gflags -i OCES.exe +ust 
Warning: 
得到下列警告

當我對UMDH進行第二次調用時,出現同樣的錯誤,當我使用UMDH來區分這兩個快照時,我沒有得到任何有用的輸出(沒有堆棧或回溯)。我在另一臺電腦上使用了UMDH,並沒有遇到這些相同的問題(另一臺電腦不再供我使用)。

UMDH的安裝是從「Windows調試工具」集合,我正在運行的WinXP專業版的32位版本,32位版本和我的軟件是在C++中使用Visual Studio 2008

我對這些警告進行了搜索,沒有發現任何有用的信息。任何幫助將非常感激。

+0

看樣子執行GFLAGS在同終端作爲可執行似乎沒有給警告(相反,從MS的例子,我經歷了我以前的計算機上),但是,我得到同樣的警告與我們主要的應用程序(不OCES.exe),返回控制終端(OCES.exe沒有;它鎖定端子)。因此,我「假設」,其影響GFLAGS可能有有限的範圍內是否有更好的方式來處理GFLAGS一個應用程序所釋放的控制回用法終端窗口? – 2010-10-20 18:01:05

+0

'gflags'應該影響註冊表。您可以檢查是否它能使用'GFLAGS /我oces.exe'的轉儲的當前設置。使用'gflags'沒有PARAMS和你建議立即進行刪除d加載GUI版本,您可以檢查並設置您的EXE標誌。 – 2010-10-20 18:10:49

+0

@Steve。我會試試這個。如果它不起作用,它可能是我們的主要應用程序,而不是UMDH。這是一個相當大的COTS產品代碼庫,所以可能會有gflags不滿意的地方。我將嘗試一些其他泄漏工具,如LeakDiag和DebugDiag。感謝您幫助我們更好地瞭解UMDH,史蒂夫。非常感激! – 2010-10-20 21:08:05

回答

0

這不是從你做的是否描述清楚,但你必須設置+ust標誌之後重新啓動該進程。

的比較,將繼續失敗,直到你擺脫對快照運行的警告。

編輯:

This article表示如果符號不正確地設置ntdll.dll中,該工具將無法正常工作。你能檢查一下嗎?

的問題,當您使用 UMDH,您可以體驗當 您使用UMDH

最常見的錯誤發生,因爲堆棧跟蹤未啓用 。另外,對於Ntdll.dll,不正確的符號 會阻止運行來自 的UMDH。對於其他符號文件,UMDH 運行,但在日誌文件包含不具有功能 的名字,而是有內部模塊相對 地址 堆棧跟蹤。遙遠的 第三個錯誤是指定一個錯誤的PID。

+0

是的。 gflags調用在調用OCES.exe之前。 – 2010-10-20 17:16:15

+0

@Clifford - 還有什麼在'out1.txt'? – 2010-10-20 17:40:43

0

@Steve - 我感動的話題略有OCES.exe(我們的網絡引擎)我們主要的應用程序,但我得到同樣的警告(請參見上面主主應用程序的詳細信息,我的後續。它與OCES.exe相同的代碼庫,它只是添加了其他代碼)。有一個在out1.txt輸出如下所示:

22 bytes + 1E at 151EA0 by BackTrace0 
28 bytes + 18 at 151EE0 by BackTrace0 
2D8 bytes + 18 at 151F20 by BackTrace0 
314 bytes + 1C at 152210 by BackTrace0 
314 bytes + 1C at 152540 by BackTrace0 

這比一些我我以前的電腦上接收的輸出略有不同:

C0 bytes + 18 at 154B88 by BackTraceB 
    7C96EED2 
    7C94B394 
    7C918F21 
    7C91F661 
    7C91F225 
    7C91EF58 
    7C91ED13 
    7C915BAA 
    7C91D129 

所以我假設我缺少的來自out1.txt的堆棧跟蹤信息。我想知道gflags是否會影響可執行文件的範圍有限?

+0

看我的編輯。順便說一句 - 如果你願意,你可以用更多的數據編輯自己的問題。 – 2010-10-20 20:52:38

1

運行GFLAGS應用到圖像文件選項卡。輸入您的流程名稱並按Tab鍵。現在增加「堆棧跟蹤(兆)的值,例如64,甚至128默認情況下,這個值是32Megs據我所知,併爲多個堆棧分配這可以很容易超支。