この記事では、C0000005 エラーについて説明し、トラブルシューティングの提案を提供します。
元の製品バージョン: Visual FoxPro
元の KB 番号: 2722492
症状
Visual FoxPro 対話型開発環境またはカスタム VFP 実行可能ファイルを実行している。 アプリケーションが閉じ、次のエラーが報告されます。
C0000005致命的な例外
原因
C0000005 エラーはメモリ エラーです。 具体的には、C0000005 エラーは、バッファー オーバーランによって発生するアクセス違反エラーです。
解決方法
多くのシナリオでは、Visual FoxPro がC0000005 エラーを報告する可能性があります。 根本原因を特定する最も効率的な方法は、エラーが発生したときに Visual FoxPro プロセスでメモリ ダンプを取得し、エラーが発生したモジュールのスタックを調べることです。 たとえば、プリンター ドライバー モジュールがスタックの一番上にある場合は、プリンター ドライバーを更新するか、別のドライバーを試してみる必要があります。 サード パーティの OCX が障害のあるモジュールとして表示される場合は、そのコントロールの開発者に、Visual FoxPro のバージョンとの互換性に関する更新プログラムを確認する必要があります。
Visual FoxPro は 32 ビット アプリケーションであるため、メモリ ダンプを取得するには 32 ビット デバッガーを使用する必要があります。
デバッグ診断の最新バージョンを取得するには、「 Debug Diagnostics Tool v1.2 が利用可能になりました」を参照してください。
これらは、Visual FoxPro プロセスのメモリ ダンプを取得するための一般的な手順です。
クラッシュが発生したマシンにインストールします。 DebugDiag.msiをダブルクリックし、セットアップ ウィザードに従います。 DebugDiag を少なくとも 200 megs のハード ドライブに無料でインストールします。
DebugDiag を構成するには:
- DebugDiag を開きます。 [規則の種類の選択] ダイアログが開きます。 [クラッシュ] を選択し、[次へ] をクリックします。
- [ターゲットの種類の選択] ダイアログで、[特定のプロセス] を選択し、[次へ] をクリックします。
- [選択したプロセス] ボックスに.EXEの名前を入力するか、一覧から選択します。 入力する場合は、.EXE名のスペルを正しく入力するように注意してください。 [This process instance only]\(このプロセス インスタンスのみ\) チェック ボックスをオンにしないでください。ダンプをキャプチャするまで、すべてのインスタンスに対してルールを有効にします。 完了したら、[次へ] をクリックします。
- [詳細な構成] ダイアログで、[最大ユーザー ダンプの制限] を 25 に設定し、[例外] ボタンをクリックします。
- [例外の追加] をクリックします
- 一覧でC0000005を選択し、[アクションの種類] を [フル ユーザーダンプ] に設定し、[アクションの制限] を 25 に設定します
- [OK]、[保存して閉じる] の順にクリックし、最後に [次へ] をクリックします。
- 次の画面で、ルール名とパスをそのままにしてダンプをそのまま保存し、[次へ] をクリックします。
- [Rule Complete]\(ルールの完了\) 画面で、[Activate the rule now]\(今すぐルールをアクティブ化する\) を選択し、 FINISH をクリックします。 アプリケーションでクラッシュが発生すると、DebugDiag によってダンプ ファイルが自動的に作成されます。 このルールのダンプが作成されるたびに、Userdump Count も DebugDiag IDE 内でインクリメントされます。 注: DebugDiag ウィンドウを開いたままにする必要はありません。ダンプ モニターは実際にはサービスとして実行され、DebugDiag が閉じられている場合でもダンプをキャプチャします。
クラッシュ コレクションが完了したら、以前に設定したルールを無効にできます。
- DebugDiag を開きます。
- [ルール] タブでルールを強調表示し、右クリックして [ルールの無効化] を選択します。