我有一个应用程序(我不知道源代码),每次失去焦点时都会冻结和崩溃(但音乐继续)。我尝试使用windbg 调试它,但它没有改变任何东西,而且我不知道如何正确记录冻结/崩溃。
我怎么知道发生了什么?在汇编指令或内存方面?
语境 :
- 图形应用程序(Nvidia 驱动程序)
- 在windows 7上创建的32位APP
- 在 Windows 7 32 位上崩溃
- 在 Windows 10 64 位上调试
- 与硬件无关,在不同的计算机上以同样的方式崩溃
- 取消关注应用程序 = 冻结,然后“无响应”,没有别的。当 Windows 发送报告时它会崩溃
- 由调试器执行时无法崩溃,它只会冻结(即使进程管理器也无法关闭应用程序)
更新:Procdump + Windbg 分析(应用程序在 procdump 下没有崩溃,它只是在停止 procdump 进程后崩溃)
ADDITIONAL_XML: 1
OS_BUILD_LAYERS: 1
COMMENT:
*** procdump.exe -e -ma -t -w "name.exe"
*** Process termination
NTGLOBALFLAG: 0
PROCESS_BAM_CURRENT_THROTTLED: 0
PROCESS_BAM_PREVIOUS_THROTTLED: 0
APPLICATION_VERIFIER_FLAGS: 0
EXCEPTION_RECORD: (.exr -1)
ExceptionAddress: 00000000
ExceptionCode: 80000003 (Break instruction exception)
ExceptionFlags: 00000000
NumberParameters: 0
FAULTING_THREAD: 00001f64
PROCESS_NAME: name.exe
ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION} Breakpoint A breakpoint has been reached.
EXCEPTION_CODE_STR: 80000003
STACK_TEXT:
1d63fdb0 77131030 000002e4 06ff3150 00000010 ntdll!NtWaitForWorkViaWorkerFactory+0xc
1d63ff70 76abfa29 00b39e00 76abfa10 1d63ffdc ntdll!TppWorkerThread+0x2a0
1d63ff80 771475f4 00b39e00 26f0b456 00000000 kernel32!BaseThreadInitThunk+0x19
1d63ffdc 771475c4 ffffffff 77167350 00000000 ntdll!__RtlUserThreadStart+0x2f
1d63ffec 00000000 77130d90 00b39e00 00000000 ntdll!_RtlUserThreadStart+0x1b
SYMBOL_NAME: ntdll!NtWaitForWorkViaWorkerFactory+c
MODULE_NAME: ntdll
IMAGE_NAME: ntdll.dll
STACK_COMMAND: dt ntdll!LdrpLastDllInitializer BaseDllName ; dt ntdll!LdrpFailureData ; ~0s; .ecxr ; kb
FAILURE_BUCKET_ID: BREAKPOINT_80000003_ntdll.dll!NtWaitForWorkViaWorkerFactory
OS_VERSION: 10.0.19041.1
BUILDLAB_STR: vb_release
OSPLATFORM_TYPE: x86
OSNAME: Windows 10
IMAGE_VERSION: 6.2.19041.662
FAILURE_ID_HASH: {bb9287bd-f940-f1d0-c927-6d6da8a242a3}
Followup: MachineOwner
更新 2 :似乎只有图形内容冻结。声音还行
更新 3:全屏时整个计算机冻结。无法访问任何其他窗口,WIN 键显示任务栏但即使使用 WIN+TAB 尝试切换应用程序时也没有任何反应
更新 4:似乎与 Nvidia 驱动程序有关