问题描述
我们有一个应用程序来收集进程转储,并将其配置在 AEDebug reg 密钥中以在进程崩溃时启动。有时会触发断点异常并转储指向调用堆栈下方。
0:000> k
# Child-SP RetAddr Call Site
00 0000001d`012df398 00007ffa`65d884f3 ntdll!NtTerminateProcess+0xa
01 0000001d`012df3a0 00007ffa`657734da ntdll!RtlExitUserProcess+0xa3
02 0000001d`012df490 00007ffa`5c651cd5 kernel32!ExitProcessImplementation+0xa
03 0000001d`012df4c0 00007ffa`5c652304 mscoreei!RuntimeDesc::ShutdownAllActiveRuntimes+0x285
04 0000001d`012df7b0 00007ffa`5bd66398 mscoreei!CLRRuntimeHostInternalImpl::ShutdownAllRuntimesThenExit+0x14
05 0000001d`012df7e0 00007ffa`5bd662e1 clr!EEPolicy::ExitProcessViaShim+0x9c
06 0000001d`012df830 00007ffa`5bcbb936 clr!SafeExitProcess+0x9d
07 0000001d`012dfab0 00007ffa`5bd6a198 clr!HandleExitProcessHelper+0x3e
08 0000001d`012dfae0 00007ffa`657713f2 clr!EEShutDownProcForSTAThread+0x2318
09 0000001d`012dfb10 00007ffa`65d854f4 kernel32!BaseThreadInitThunk+0x22
0a 0000001d`012dfb40 00000000`00000000 ntdll!RtlUserThreadStart+0x34
Windbg 中的 ~ 命令显示这是转储中的唯一线程。并且没有托管异常。
0:000> !pe
There is no current managed exception on this thread
0:000> ~
. 0 Id: 18f4.b07c Suspend: -1 Teb: 00007ff7`24f90000 Unfrozen
为什么会为此调用堆栈触发调试器?有没有其他人看到同样的情况?
更新:
0:000> .exr -1
ExceptionAddress: 0000000000000000
ExceptionCode: 80000003 (Break instruction exception)
ExceptionFlags: 00000000
NumberParameters: 0
0:000> !avrf
Application verifier is not enabled for this process.
Use appverif.exe tool to enable it.
0:000> !gflag
Current NtGlobalFlag contents: 0x00000000
0:000> !gle
LastErrorValue: (Win32) 0x6 (6) - The handle is invalid.
LastStatusValue: (NTSTATUS) 0xc0000008 - An invalid HANDLE was specified.
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)