Windows system >> Windowsの知識 >  >> Windows Vistaシステムチュートリアル >> Windows Vistaのチュートリアル >> Vistaに関する深い知識:トラブルシューティング

Vistaに関する深い知識:トラブルシューティング

  

デバイスドライバのエラー、ハードウェアの問題、またはオペレーティングシステム自体の問題により、システムに回復不能なカーネルモードエラーが発生すると、Windowsに悪名高いと表示されます」ブルースクリーンがフリーズした後、システムはディスク上のデータの競合を防ぐために強制的にサスペンドされますが、同時に、システム構成に応じて、物理メモリの一部または全部がクラッシュダンプファイルに書き込まれます。クラッシュ後にシステムを再起動すると、Microsoftのオンライン障害分析サービス(OCA)が分析して問題の原因を突き止めることができるため、メモリダンプファイルが役立ちます。必要に応じて、Windows用のMicrosoft Debugging Toolsを使用して自分で障害分析を実行できます。

Pot Basin Commentary:Debugツールを使ってシステム障害を分析する方法については、Zhang YinkuiのWebキャストを参照してください。

ただし、古いバージョンのWindowsでは、セッションマネージャプロセス(%Systemroot%Sys&tem; tem32Smss.exe)がページファイルを初期化するまで、クラッシュダンプファイルのサポートを有効にできます。つまり、これより前に深刻なシステム障害が発生し、システムがブルースクリーンの場合、ダンプファイルは生成されません。 Smss.exeプロセスが開始される前に多数のデバイスドライバが初期化されるため、初期のシステム障害によってダンプファイルが作成されることはないため、これらの障害のトラブルシューティングは非常に困難です。

Potasian commentary:Windows 2000 /XPの起動プロセスについては、Zhang YinkuiのWebcastを参照してください。

そしてWindows Vistaは、ダンプファイルの作成にかかる時間を大幅に短縮しました。これで、ブートタイプ "boot"のすべてのドライバが起動された後、ブートタイプ "system"のすべてのドライバが起動される前にダンプファイルのサポートを初期化できます。この改善により、システムの起動段階でクラッシュが発生したときに、Microsoft OCAサービスがこの問題の診断に役立ちます。さらに、Windows Vistaはダンプファイルを64KBブロックレベルで埋めますが、Windowsの古いバージョンは4KBです。このような大容量のメモリダンプファイルは、10倍の速度で生成できます。

Pot Basin Comment:ブートタイプは "boot"で、これはntldrまたはブートマネージャによってロードされたドライバを指します。これらのドライバは重要です、そして、それが起動されないならば、Windowsは起動を続けることができないでしょう。スタートアップの種類は "system"です。これはカーネルの初期化中に起動されるドライバを表します。

Windows Vistaでは、アプリケーションのトラブルシューティングも改善されました。古いバージョンのWindowsでは、アプリケーションが失敗すると、未処理の例外ハンドラが実行されて、正しく処理されないこの例外を処理します。例外ハンドラは、MicrosoftのApplication Error Reporting(AER)プロセス(%Systemroot%System32Dwwin.exe)をロードし、プログラムに問題があることを確認するダイアログボックスを表示して、エラーレポートをMicrosoftに送信する必要があるかどうかを尋ねます。ただし、プロセスがクラッシュしてメインスレッドのスタックが破損した場合、例外ハンドラは実行時にクラッシュし、そのプロセスはカーネルによって終了されるため、プログラムウィンドウは過去に点滅し、エラー報告ダイアログは表示されません。

Windows Vistaはクラッシュプロセスのコンテキストからエラー処理を削除し、新しいサービスであるWindowsエラー報告(WER)サービスで処理します。このサービスはサービスホストプロセスで実行され、DLLファイル(%Sys&temyot%System32Wersvc.dll)として実装されています。アプリケーションが失敗しても、例外ハンドラは実行されますが、例外ハンドラはメッセージをWERサービスに送信し、WERサービスはWERエラー報告プロセス(%Systemroot%System32 Werfault.exe)をロードしてエラー報告を表示します。ダイアログメインスレッドのスタックが破壊されたために例外ハンドラがクラッシュした場合、例外ハンドラはクラッシュ、クラッシュ実行を繰り返し実行し、最終的にスレッドのすべてのスタックスペースを消費し、カーネルがこの状態になるとWERを処理します。障害通知メッセージを送信してください。

Potasian commentary:サービスホストプロセスはsvchostプロセスを指しています。

次の4つの画像で、2つの実装方法の比較を見ることができます。これらの図は、Accvio.exeプロセスとエラー報告プロセスの関係を示していますAccvio.exeプロセスは、アプリケーションのクラッシュを引き起こす可能性がある障害テストプログラムです。 Windows Vistaの新しいエラー処理メカニズムにより、アプリケーションが黙って停止することがなくなり、ソフトウェア開発者が製品を改善するためにマイクロソフトにバグレポートを送信することができなくなりました。

Windows XPアプリケーションエラー処理

Windows XPエラーレポートダイアログボックス

Windows Vistaアプリケーションエラー処理
>

Windows Vistaエラー報告ダイアログボックス

Pot Basinコメント:図1からわかるように、Windows XPエラー報告プロセスdwwinは、次の場合にエラーを生成したアプリケーションによって開始されます。アプリケーションのメインスレッドスタックが破損しているため、エラーレポートが表示されないことがあります。図3は、Windows Vistaのエラー報告プロセスを示しています。WerFaultはsvchostプロセスによって開始され(実際にはsvchostプロセスのWERサービスによってロードされます)、アプリケーションエラーをシステムで確実に捉えることができます。 。

Copyright © Windowsの知識 All Rights Reserved