C#/COM/C++ アプリケーションがクラッシュしており、デバッグの助けが必要です。gflags を有効にして WinDbg をアタッチして実行したところ、クラッシュの原因はアクセス違反であると判断されましたが、それ以上に絞り込むことはできませんでした。すべてのマシンで問題が発生しているわけではありません。問題を頻繁に再現しているように見えるマシンがいくつかありますが、決定論的ではありません。私たちは、単純にアプリケーションから切り替えて (Alt-Tab など)、元に戻しただけでアプリケーションがクラッシュすることを確認しました。WinDbg からの出力は以下のとおりです。
問題を引き起こしている可能性のあるコードの領域を体系的にコメントアウトしようとしてきましたが、まだあまり成功していません。
どのデバッグ手順またはツールを試す必要があるかについて何か提案はありますか?
!分析 -v
EXCEPTION_RECORD: ffffffff -- (.exr 0xffffffffffffffff) ExceptionAddress: 1a584ff2 (+0x1a584ff1)
ExceptionCode: c0000005 (アクセス違反) ExceptionFlags: 00000000 NumberParameters: 2 Parameter[0]: 00000000 Parameter[1]: 1a584ff2 アドレス 1a584ff4 からの読み取りを試行PROCESS_NAME: ProcessFiles.exe
ERROR_CODE: (NTSTATUS) 0xc0000005 - 0x%08lx の命令が 0x%08lx のメモリを参照しました。メモリを %s にすることはできません。
EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - 0x%08lx の命令が 0x%08lx のメモリを参照しました。メモリを %s にすることはできません。
EXCEPTION_PARAMETER1: 00000000
EXCEPTION_PARAMETER2: 1a584ff2
READ_ADDRESS: 1a584ff2
FOLLOWUP_IP: Ed20+1a584ff1 1a584ff2 ?? ???
NTGLOBALFLAG: 2000000
APPLICATION_VERIFIER_FLAGS: 0
IP_MODULE_UNLOADED: Ed20+1a584ff1 1a584ff2 ?? ???
MANAGED_STACK: (TransitionMU) 0EC6F6F4 7B1D8CCE System_Windows_Forms_ni!System.Windows.Forms.Application+ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32, Int32, Int32)+0x24e 0EC6F790 7B1D8937 System_Windows_Forms_ni.Application.Windows. +ThreadContext.RunMessageLoopInner(Int32, System.Windows.Forms.ApplicationContext)+0x177 0EC6F7E4 7B1D8781 System_Windows_Forms_ni!System.Windows.Forms.Application+ThreadContext.RunMessageLoop(Int32, System.Windows.Forms.ApplicationContext)+0x61 0EC6F814 7B195911 System_Windows_Forms_ni!System .Windows.Forms.Application.Run(System.Windows.Forms.Form)+0x31 0EC6F828 0969D97A Extract_Utilities_Forms!Extract.Utilities.Forms.VerificationForm`1[[System.__Canon, mscorlib]].A(System.Object)+0x23a 0EC6F8C0 79A00EEE mscorlib_ni!システム。 Threading.ThreadHelper.ThreadStart(System.Object)+0x4a (TransitionUM)
LAST_CONTROL_TRANSFER: 7e418734 から 1a584ff2 へ
FAULTING_THREAD: ffffffff
ADDITIONAL_DEBUG_TEXT: スレッド:[e30] のフレーム:[0] からの属性 [ip_not_executable] に基づくフォローアップ セット
BUGCHECK_STR: APPLICATION_FAULT_BAD_INSTRUCTION_PTR_INVALID_POINTER_READ_WRONG_SYMBOLS_WINDOW_HOOK
PRIMARY_PROBLEM_CLASS: BAD_INSTRUCTION_PTR
DEFAULT_BUCKET_ID: BAD_INSTRUCTION_PTR
STACK_TEXT: 7b1d8cce System_Windows_Forms_ni!System.Windows.Forms.Application+ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop+0xc 7b1d8937 System_Windows_Forms_ni!System.Windows.Forms.Application+ThreadContext.RunMessageLoopInner+0x0 7b1d8781 System_Windows_Forms_ni!System.Windows .Forms.Application+ThreadContext.RunMessageLoop+0x0 7b195911 System_Windows_Forms_ni!System.Windows.Forms.Application.Run+0x31 0969d97a Extract_Utilities_Forms!Extract.Utilities.Forms.VerificationForm`1[[System.__Canon, mscorlib]].A+0x23a 79a00eee mscorlib_ni!System.Threading.ThreadHelper.ThreadStart_Context+0x72a25e 792e019f mscorlib_ni!System.Threading.ExecutionContext.Run+0x6f 797db48a mscorlib_ni!System.Threading.ThreadHelper.ThreadStart+0x4a
STACK_COMMAND: .ecxr ; ~~[e30]; .frame 0; ** 疑似コンテキスト ** ; キロバイト
FAILED_INSTRUCTION_ADDRESS: Ed20+1a584ff1 1a584ff2 ??
???SYMBOL_NAME: Ed20
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: Ed20
IMAGE_NAME: Ed20
DEBUG_FLR_IMAGE_TIMESTAMP: 0
FAILURE_BUCKET_ID: BAD_INSTRUCTION_PTR_c0000005_Ed20!アンロード
BUCKET_ID: APPLICATION_FAULT_BAD_INSTRUCTION_PTR_INVALID_POINTER_READ_WRONG_SYMBOLS_WINDOW_HOOK_BAD_IP_Ed20
フォローアップ: MachineOwner