2

最近、私のイベントログでこれを取得しました:

A fatal hardware error has occurred.
Reported by component: Processor Core
Error Source: Machine Check Exception
Error Type: Bus/Interconnect Error
Processor ID: 1

問題は、これらの種類のエラーをログに記録できるログサブシステムをどのように設計できるかということです。

HDDに書き込むために1つのDMA要求を発行するだけで十分であり、ページングや割り込みがない場合、おそらく故障したハードウェアで行うにはまだ多くの作業が必要です。

「CPUが見つからない、ソフトウェアエミュレーションを開始する」という古いジョークも思い出します。

PS私は、コンピューターの診断ではなく、問題のソフトウェア部分に関心があるため、これはスーパーユーザーまたはサーバー障害に属していないと思います:)

4

2 に答える 2

1

私の知る限り、その特定のエラーはCPUの内部でフラグが立てられます。特定のフラグはMCE_FLAGであり、CPUIDを使用してこのフラグの内容についてCPUをポーリングできます。アセンブリプログラマーはそれほど多くありませんが、Intelアーキテクチャの本(Intelのサイトで無料)にはもっと何かがあるはずだと思います。CPUID関数を参照してください。

于 2011-11-07T00:53:20.303 に答える
1

HWデバイスはドライバーによって管理されており、デバイスエラーのキャプチャはドライバーの責任の一部です。ドライバーは、専用のカーネルAPIを使用して、エラーに関連するデータをWindowsエラーログに書き込むことができます。ログはアプリケーションで解析できますが、エラーイベントデータを理解するには、障害のあるデバイスに関連する専有情報を知る必要があります(情報はドキュメントに記載されているか、ドキュメントに記載されていません)。ドライバがMSによって実装された場合、イベントビューアは、質問の場合と同様に、追加の解析なしでエラーの意味を提示できます。

于 2012-10-22T19:11:25.757 に答える