文章編號: 246084 - 上次校閱: 2006年11月1日 - 版次: 1.1

解譯 DrWtsn32.log 檔來識別程式損毀資料

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
全部展開 | 全部摺疊

結論

Windows NT 的 Dr.Watson 是程式錯誤除錯器會偵測和診斷程式錯誤,並記錄結果的診斷資訊。程式錯誤事件時,[Dr.Watson 自動啟動,且,如果適當,設定會建立 User.dmp 和 DrWtsn32.log 檔案。這些檔案位於 %SystemRoot %資料夾中。DrWtsn32.log 檔案會附加每次程式錯誤發生時; 覆寫 User.dmp 檔案。

本文將告訴您,如何檢閱 DrWtsn32.log 檔案以找出毀損時當機發生的程式、 當機發生的位置,在組件指令和當機的相關的函式的清單。

其他相關資訊

DrWtsn32.log 檔案中資料的正確性取決於您正在 %SystemRoot%\Symbols 資料夾中安裝一次的當機的電腦上程式正確的符號。如果安裝了正確的符號,DrWtsn32.log 檔案中包含足夠的資訊來判斷造成當機函式。就可以使用這項資訊來搜尋 「 Microsoft 知識庫 」 的函式有關的已知問題。如果未安裝符號,或安裝不正確的符號,DrWtsn32.log 檔案中的資料會受限於用來識別的程式的當機,並且當機發生。 是否安裝正確的符號是伺服器系統管理員維護的符號檔案而定。在伺服器上安裝符號檔之後伺服器系統管理員必須更新符號檔 Service Pack 或 Hotfix 安裝在伺服器每一次。

因為 DrWtsn32.log 檔案會附加為每個損毀,最近一次的當機資訊位於下方的記錄檔。找不到 DrWtsn32.log 檔案中的資訊:
  1. 在 Notepad.exe 中開啟 DrWtsn32.log 檔案。
  2. 捲動至檔案的底部。
  3. 按一下檔案中的最後一行中。
  4. 在 [搜尋] 功能表上按一下 [尋找]。
  5. 尋找] 對話方塊中,輸入 錯誤 >.
  6. 在 [方向] 區域按一下 [另 向上 新檔]。
  7. 按一下 [確定]。[記事本] 尋找最後一個發生的錯誤和失敗的組件指令。
注意: 的 DrWtsn32.log 檔案的正確度是正確的符號伺服器上安裝一次的當機而定。

範例:
Function: FIDL::EcAddFids -- Function where the fault occurred
        0040cf31 e89b74ffff       call    ExchMHeapReAlloc (004043d1)
        0040cf36 85c0             test    eax,eax
        0040cf38 0f8454580b00  je FIDL::EcAddFids_44s_185on_23230069s_971e (004c2792)
        0040cf3e 8b13     mov  edx,[ebx]          ds:0715f4f0=00000000
        0040cf40 8b742418 mov  esi,[esp+0x18]     ss:082cde7b=???
        0040cf44 8d0ced00000000                   ds:0000c401=????????
        0040cf4b 894304   mov     [ebx+0x4],eax   ds:082cdef6=????????
        0040cf4e 8d3cd0   lea     edi,[eax+edx*8] ds:00000000=????????
        0040cf51 8bc1   mov     eax,ecx
        0040cf53 c1e902 shr     ecx,0x2
FAULT ->0040cf56 f3a5   rep  movsd ds:00000000=??? es:074238a8=00000000
        0040cf58 8bc8   mov     ecx,eax
        0040cf5a 83e103 and     ecx,0x3
        0040cf5d f3a4   rep     movsb         ds:00000000=?? es:074238a8=00
        0040cf5f 012b   add     [ebx],ebp              ds:0715f4f0=00000000
        0040cf61 ebbc   jmp     FIDL::EcAddFids+0x13 (0040cf1f)
        0040cf63 e8234dffff call    ExchMHeapAlloc (00401c8b)
        0040cf68 ebcc   jmp     FIDL::EcAddFids+0x2a (0040cf36)
				
識別函式之後可以搜尋 「 Microsoft 知識庫 」,才能判斷當機是已知的問題,以及可能的修正程式是可以使用。 下列組件的指示 「 堆疊上一步追蹤 」 區段會列出當機而導致函式。「 堆疊上一步追蹤 」 區段可以提供一般的程式碼路徑,描述什麼發生失敗的函式的前置。最上層的函式是發生錯誤。
-----Stack Back Trace------

FramePtr ReturnAd Param#1  Param#2  Param#3  Param#4  Function Name
0715f480 005eb60a 0000c401 00000000 0715f59c 00000000 store!FIDL::EcAddFids [omap]  (FPO: [EBP 0x0000c401] [2,0,4])
0715f494 0059d4d4 00000000 00062008 103d0003 0715f59c store!PRFE::EcSetPostReply [omap]  (FPO: [2,0,2])
0715f4fc 004c4f4e 0715f59c 0715f558 00000000 0740eee0 store!STREAM::EcConfig [omap]  (FPO: [EBP0x103d0003] [2,19,4])
0715f564 00439407 00000004 0715f59c 07419510 00000000 store!OMSG::EcSetOneProp_2135_221c_96069s_971e
[omap]  (FPO: [EBP 0x00000000] [2,19,4])
0715f600 0063fc78 000004e4 00000028 07423338 0715f648 store!CVTOMSG::HrSetProps [omap]  (FPO: [EBP0x07419510] [3,32,4])
				
您找出錯誤之後,您就可以識別墜毀處理序識別碼 (PID)、 的日期與時間損毀的程式:
  1. 在 [搜尋] 功能表上按一下 [尋找]。
  2. 在 [尋找] 對話方塊中,應用程式
  3. 在 [方向] 區域按一下 [另 向上 新檔]。
  4. 按一下 [確定]。搜尋結果顯示的程式]、 [PID]、 [時間,] 及 [日期的當機。
範例:
Application exception occurred:
        App: exe\store.dbg (pid=304)
        When: 11/11/1999 @ 9:23:32.640
        Exception number: c0000005 (access violation)
				
的日期和時間的當機應該符合日期及時間的 User.dmp 檔案,因為這兩個檔案會寫入損毀發生時。

如果在伺服器上未安裝符號,損毀發生時,下列資訊會顯示當您搜尋錯誤。 請注意字串 」 函式: (nosymbols)"這表示 Dr.Watson 程序無法 %SystemRoot%\Symbols 資料夾中找到符號:
function: (nosymbols) ----With no symbols installed
        0040cf31 e89b74ffff       call    004043d1
        0040cf36 85c0             test    eax,eax
        0040cf38 0f8454580b00     je      004c2792
        0040cf3e 8b13             mov     edx,[ebx]              ds:06a5f4f0=00000000
        0040cf40 8b742418         mov     esi,[esp+0x18]         ss:07bcde7b=????????
        0040cf44 8d0ced00000000   lea     ecx,[00000000+ebp*8]   ds:0000c401=????????
        0040cf4b 894304           mov     [ebx+0x4],eax          ds:07bcdef6=????????
        0040cf4e 8d3cd0           lea     edi,[eax+edx*8]        ds:00000000=????????
        0040cf51 8bc1             mov     eax,ecx
        0040cf53 c1e902           shr     ecx,0x2
FAULT ->0040cf56 f3a5            rep  movsd ds:00000000=???????? es:074238e0=00000000
        0040cf58 8bc8             mov     ecx,eax
        0040cf5a 83e103           and     ecx,0x3
        0040cf5d f3a4             rep     movsb         ds:00000000=?? es:074238e0=00
        0040cf5f 012b             add     [ebx],ebp              ds:06a5f4f0=00000000
        0040cf61 ebbc             jmp     0040cf1f
        0040cf63 e8234dffff       call    00401c8b
        0040cf68 ebcc             jmp     0040cf36
        0040cf6a 53               push    ebx
        0040cf6b 8b1da8114000     mov     ebx,[004011a8]         ds:004011a8=77f674c0
        0040cf71 56               push    esi
        0040cf72 8bf1             mov     esi,ecx

---- Stack Back Trace ----

FramePtr ReturnAd Param#1  Param#2  Param#3  Param#4  Function Name
0000c401 00000000 00000000 00000000 00000000 00000000 store!(nosymbols) 
				
正在向上搜尋程式:
Application exception occurred:
        App: exe\store.dbg (pid=311)
        When: 11/11/1999 @ 10:11:1.875
        Exception number: c0000005 (access violation)
				
您可以檢閱 DrWtsn32.log 檔,以識別協力廠商軟體損毀。因為一些軟體製造商會使其符號公開提供使用,資料是通常僅限於程式名稱、 日期和時間。當您找到錯誤時,錯誤位置也可能會顯示"(nosymbols)"。

範例:
Application exception occurred:
       App:  (pid=344)
       When: 6/29/1999 @ 16:46:44.728
       Exception number: c0000005 (access violation)

209 ntpd.exe
385 XlntNetS.exe
429 CMD.exe
344 XlntNetS.exe  -----PID=344, This app crashed
591 XlntCli.exe
571 DRWTSN32.exe
				
您也可以檢閱 DrWtsn32.log 檔以判定的次數當機發生繼續向上搜尋字串錯誤或 「 應用程式。

這篇文章中的資訊適用於:
  • Microsoft Windows NT Server 4.0 Standard Edition
關鍵字:?
kbmt kbinfo KB246084 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:246084? (http://support.microsoft.com/kb/246084/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。