2009-10-19 63 views
3

我有一個崩潰轉儲文件,需要使用windbg進行分析以運行一些測試。Windbg - 檢測崩潰轉儲所需的符號

由於一些限制,我無法評論,我的符號文件夾只能包含分析此故障轉儲所需的符號。

有沒有辦法知道轉儲所需的確切符號?如果有幫助,我可以首先在其他所有符號可用的環境中分析此轉儲。

謝謝。

回答

5

您可以使用!sym noisy使Windbg轉儲出它所需要的符號並尋找它。 如果您使用本地緩存設置符號路徑,Windbg將只下載到本地緩存路徑中所需的符號。
如果您在機器上加載轉儲,強制加載所有符號,lml命令將顯示所有加載的符號,並且您可以看到每個模塊加載符號的位置,只將這些pdb文件複製到目標受限環境中。

+0

這是定義上我正在尋找的答案。經過一些更多的研究之後,我使用命令!sym noisy(space between)和srv * localpath * resourcepath來下載所需的符號。非常感謝你。 – 2009-10-20 11:08:25

1

我不完全確定這是否可能。分析轉儲是一個動態過程,但您正在尋找一個靜態解決方案。除非你已經知道問題是什麼,否則不可能知道需要什麼符號。因此不可能知道需要什麼樣的符號。

即使做一件很簡單的事情,就像說「我只會提供在棧上有幀的DLL的符號」是不夠的。內存損壞或來自不在堆棧中的DLL的全局變量可能會影響程序的行爲。將該DLL的符號留出可能會妨礙對問題的診斷。

一種方法,雖然這將產生不錯的結果將是以下

  • 最多可以裝入在所有符號可供環境轉儲
  • 設置爲目錄
  • 運行符號路徑「分析-v「
  • 在此處轉儲模塊的狀態,併爲包含windbg加載符號的任何DLL添加符號。
0

也可以使用下面的命令:

lml 

運行「分析-v」來顯示WinDbg的加載或試圖加載哪些符號之後。