断続的にクラッシュするアプリケーションを作成しましたが、アプリケーション層で例外をキャプチャできません。私は常にイベントログにエントリを取得しますが、多くの情報を提供しません:
Faulting application name: BCS-UI.exe, version: 1.0.11.0, time stamp: 0x5c0edcbd
Faulting module name: ntdll.dll, version: 10.0.17134.376, time stamp: 0x4358e406
Exception code: 0xc0000374
Fault offset: 0x000d8829
Faulting process id: 0x39b0
Faulting application start time: 0x01d49161c80079a0
Faulting application path: C:\Gogs Local\SMR_Windows_UI\BCS-UI\BCS-UI\bin\Release\BCS-UI.exe
Faulting module path: C:\WINDOWS\SYSTEM32\ntdll.dll
Report Id: 1fbc4761-d256-44b0-99b0-4d9d758e4fe0
Faulting package full name:
Faulting package-relative application ID:
- System
- Provider
[ Name] Application Error
- EventID 1000
[ Qualifiers] 0
Level 2
Task 100
Keywords 0x80000000000000
- TimeCreated
[ SystemTime] 2018-12-11T15:12:28.109191000Z
EventRecordID 23318
Channel Application
Computer Leviathan
Security
- EventData
BCS-UI.exe
1.0.11.0
5c0edcbd
ntdll.dll
10.0.17134.376
4358e406
c0000374
000d8829
39b0
01d49161c80079a0
C:\Gogs Local\SMR_Windows_UI\BCS-UI\BCS-UI\bin\Release\BCS-UI.exe
C:\WINDOWS\SYSTEM32\ntdll.dll
1fbc4761-d256-44b0-99b0-4d9d758e4fe0
あなたが見ることができるように、私はこれを得る:
障害のあるモジュールパス:C:\ WINDOWS\SYSTEM32\ntdll.dll。
それが何であるか、またはクラッシュにどのように関係するのかはわかりませんが、複数のマシンで再現することができました。
更新:上記の理由により、起動時にアプリケーションがクラッシュするようになりました。 MainWindowコンストラクター(WPFアプリケーション)の最後に到達し、そこに約10秒間白い画面で座ってから終了します。ソフトウェアの古いバージョンにロールバックし、この動作を再現しました。また、別のマシンに移動しましたが、この動作は見られませんでしたので、私の現在の理論はコメントで言われたことに同意しています-何かがヒープを破損し、再起動時にのみクリアされます。
更新2:デバッガーの外部で実行しているときにこのエラーメッセージを生成できますが、デバッガーで実行している場合、例外で停止することはできません。
gDI +で一般的なエラーが発生しました
それが今日私が狩りをすることです。おもしろくて不思議なことに、アプリは起動時に毎回、再起動後でもクラッシュします。現時点では、他のマシンでは同じ動作は発生しません。
この種のシステム内部の問題をデバッグするには、 プロセスモニター を試すことをお勧めします。
Process Monitorは、リアルタイムのファイルシステム、レジストリ、プロセス/スレッドアクティビティを表示するWindows用の高度な監視ツールです。
基本的に、「NAME NOT FOUND」エラーに注意する必要があります。これは、dllやレジストリキーの欠落、またはモニター画面にあるその他の疑わしいエラーを意味します。
前回、アプリで同様のクラッシュが発生し、ntdll.dllがエラーモジュールとして指定されたとき、現実には、自分のコードにメモリリークがありました。メモリが割り当てられていない文字列でstrcpyを実行しました。何かのようなもの、
char * str;
strcpy(str, "Hello");
これは、コードを徹底的に調べた後に発見されました。
コードに漏れがないか確認してください。