為瀏覽器崩潰準備支援呼叫

本文說明如何產生及收集 Microsoft 客戶服務所使用的損毀傾印和事件記錄,並支援疑難排解瀏覽器的崩潰。 在建立案例時收集這些記錄檔並上傳,可協助診斷原因並解決問題。

適用于:   瀏覽器
原始 KB 編號:   4520151

Background

為了解決進程損毀,我們永遠都需要相同的資料。 如果應用程式的程式碼遇到未處理的例外狀況,處理常式會因為程式碼無法再執行而崩潰。 Windows 在發生此問題時便會偵測到此問題,它會將處理常式記憶體的 bits (或所有) 儲存至檔案(稱為「轉儲」檔案)。 這個檔案可讓我們看到當您在崩潰時所發生的情況。

特別重要的是,會造成損毀的呼叫堆疊。 呼叫堆疊主要是用來線上程內執行功能。 不過,當我們檢查「失敗」時,呼叫堆疊的運作方式就像是問題 指紋 ,可讓我們比對相關問題,並深入分析處理常式記憶體以瞭解發生的情況。

Windows 會在每次遇到進程損毀時,自動捕獲微型轉儲。 這些小型檔案可協助我們將此崩潰事件與先前的事件進行比較。 不過,小型轉儲通常不夠詳細,無法進行疑難排解。 因此,我們需要完整的處理常式記憶體傾印。

收集資料

重要

透過遵循本文中的程式,您可以捕獲機密的個人資料。 若共用此資料是您所關注的問題,您應該與 Microsoft 支援部門 合作,以探索解決問題的替代方法。 Microsoft 致力於保護您的隱私權。 如需詳細資訊,請參閱 Microsoft 隱私權聲明

收集完整程式轉儲最快的方法是使用 Windows 錯誤報告 (WER) 。 (參閱 透過 WER 收集轉儲)

有些情況下,WER 無法收集轉儲。 在這種情況下,我們可能需要使用其他工具進行疑難排解。 (參閱 透過 ProcDump 收集轉儲)

如果問題是間歇性的,且需要一些時間才能重現,我們可以在等待轉儲集合完成時,檢查事件記錄檔,以取得問題的相關線索。 (請參閱 收集事件記錄檔資訊)

透過 WER 收集轉儲

重要

請仔細依照本節中的步驟執行。 如果您不當地修改登錄,可能會發生嚴重的問題。 在您進行修改之前,請先備份登錄,做為還原之用,以免發生問題。

下列條款適用于使用 WER:

  • DumpFolder:定義儲存損毀傾印的資料夾。
  • DumpType:定義要建立 (的轉儲類型。值 2 表示完全記憶體傾印) 。

如需 WER 登錄設定的詳細資訊,請參閱 Wer 設定

若要使用 WER,請遵循下列步驟:

  1. 在發生故障的電腦上,在根磁片磁碟機上建立一個資料夾,以儲存將要建立的轉儲檔案。 例如,建立 C:\Dumps。

  2. 開啟系統管理命令提示字元視窗,並在命令提示字元處輸入下列命令:

    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" /v DumpFolder /t REG_EXPAND_SZ /d "C:\Dumps" /f
    
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" /v DumpType /t REG_DWORD /d "2" /f
    

    注意

    • 在這些命令中, C:/轉儲 是您在步驟1中建立的資料夾。
    • 如果 WER 服務 (WerSvc) 已啟動,您可能必須停止並重新啟動,才能正確讀取新的登錄設定。
  3. 執行重新產生損毀的必要步驟。

  4. 發生崩潰後,請流覽至 [ C:\Dumps ] 資料夾,並上傳轉儲 ( dmp) 檔案。 若要執行此動作,請在案例建立期間使用 上傳 選項,或以手動方式將檔案上傳至支援代理程式所提供的工作區(根據代理程式的要求)。

透過 ProcDump 收集轉儲

如果在處理常式當機時未使用 WER 建立轉儲,下一個步驟是使用 ProcDump (來自 Windows Sysinternals suite的其中一個工具)。

有些情況下,不會建立轉儲,因為應用程式在技術上不會損毀,但會自行終止。 您可以使用事件檢視器檢查是否已記錄崩潰事件。 若要執行此動作,請依照下列步驟執行:

  1. 按 Windows 徽標鍵 + R,輸入 eventvwr.exe,然後按 enter 鍵。
  2. 在功能窗格中,展開 [ Windows 記錄 檔]。
  3. 選取 [ 應用程式]。
  4. 檢查事件 IDs 以找出發生崩潰的時間

檢查是否有對應至崩潰時間的 1000 錯誤事件專案。 如果有,請遵循下列步驟:

  1. 在發生故障的電腦上,在根磁片磁碟機上建立名為 [ 轉儲 ] 的資料夾。 例如,建立 C:\Dumps。

  2. 從下列位置下載 ProcDump,並展開壓縮檔:
    ProcDump

  3. 開啟系統管理命令提示字元視窗,並流覽至您展開 ProcDump 所在的位置。

  4. 決定 如何尋找 您必須監視之程式的 PID。

    注意

    若要為執行中的工具提供清理環境,請關閉所有開啟的瀏覽器視窗並執行程式。

  5. 在命令提示字元中輸入下列命令,取決於當發生崩潰時,系統的行為:

    • 如果處理常式已損毀,且已將專案寫入事件記錄中:

      Procdump -ma -e C:\Dumps <pid of the process>
      
    • 如果程式在事件記錄檔中終止,且沒有任何損毀跡象:

      Procdump -ma -t C:\Dumps <pid of the process>
      

      注意

      在此命令中,C:\Dumps 是將儲存轉儲檔的資料夾。

  6. 執行重新產生損毀的必要步驟。

  7. 發生崩潰後,請流覽至 [ C:\Dumps ] 資料夾,並上傳轉儲 ( dmp) 檔案。 若要執行此動作,請在案例建立期間使用 上傳 選項,或以手動方式將檔案上傳至支援代理程式所提供的工作區(根據代理程式的要求)。

收集事件記錄檔資訊

若要儲存要傳送給 Microsoft 的事件資料,請遵循下列步驟:

  1. 按 Windows 徽標鍵 + R,輸入 eventvwr.exe,然後按 enter 鍵。
  2. 在功能窗格中,展開 [ Windows 記錄 檔]。
  3. 以滑鼠右鍵按一下 [ 應用程式],然後選取 [ 將所有事件另存為]。
  4. 輸入檔案名,並將資訊儲存為 .evtx 檔。

如何尋找處理常式的 PID

建立程式時,會將其指派為身分識別號碼。 您可以執行多個具有相同名稱的程式,但進程識別碼 (PID) 在其存留期內是唯一的。

我們使用的部分工具需要處理常式 PID。 若要尋找此數目,請遵循下列步驟:

  1. 開啟 [工作管理員]。 若要這麼做,請開啟 [ 搜尋],然後在搜尋方塊中輸入工作 管理員 ,然後在 [結果] 中選取 [ 任務管理員 ]。

  2. 在 [工作管理員] 中,選取 [ 詳細資料 ] 索引標籤。

    Image1

  3. 預設不會顯示 [PID] 欄位。 若要顯示隱藏狀態,請在任何欄標題上按一下滑鼠右鍵,然後選取 [ 選取欄]。

    影像 2

    選取 [ PID ] 核取方塊,然後選取 [確定]

    影像 3

    現在會顯示 [PID] 欄位。

    影像4