フィールドにある特定のソフトウェアで、完全にランダムなエラーがポップアップ表示されます。このアプリケーションは、VB6 で作成されたゲームであり、Windows 7 64 ビットで実行されます。ときどきアプリがクラッシュし、一般的な「program.exe が応答を停止しました」というメッセージ ボックスが表示されます。このゲームは、このメッセージが表示されるまで何日も、または数時間以内に問題なく実行できます。例外はスローされていません。
このアプリは Windows 2000 互換モード (これが元の OS でした) で、ビジュアル テーマを無効にして、管理者として実行します。アプリ自体は、外部コンポーネントと API 呼び出しを使用するという点で意図的に単純化されています。
参考文献:
Visual Basic for Applications
Visual Basic ランタイム オブジェクトとプロシージャ
Visual Basic オブジェクトとプロシージャ
OLE オートメーション
Microsoft DAO 3.51 Object Library
Microsoft Data Formatting Object Library
コンポーネント:
Microsoft Comm Control 6.0
Microsoft Windows Common Controls 6.0 (SP6)
Resizer XT
ご覧のとおり、これらはほとんどの場合、非常に単純な Microsoft 標準ツールです。データベース コンポーネントは、簿記に使用される Access データベースと対話するために存在し、Resizer XTが挿入されて、このゲームを元の解像度 800x600 から 1920x1080 に簡単に移動できます。
キオスクではネットワークが有効になっていません。ネットワーク ドライバがないため、リモート データベースへの接続がありません。すべてが単一のボックスにカプセル化されています。
これが発生すると、Windows アプリケーション イベント ログにイベント ID 1000 が表示され、一見ランダムなモジュール (これまでのところ、ntdll.dll または lpk.dll) で障害が発生しています。API 呼び出しに関しては、ntdll.dll からのものは見当たりません。さまざまなファイル システムおよびサウンド機能に、kernel32、user32、および winmm を使用しています。完全にランダムであるため再現できないため、どこからトラブルシューティングを開始すればよいかさえわかりません。何か案は?
編集:もう少し情報。他の開発者の提案で、いくつかの異なるバージョンの Dependency Walker を試しましたが、最新バージョンでは、IESHIMS.dll と GRPSVC.dll が見つからないことがわかりました (これら 2 つは Depends.exe のよく知られたバグのようです)。 、COMCTRL32.dll と IEFRAME.dll にシンボルがありません。そこに手がかりはありますか?