什么可能导致 mscorwks!ThreadpoolMgr::FireTimers 发生访问冲突?
以下访问冲突每隔几天就会使我的应用程序崩溃。可能是什么原因造成的?
(80c.f28): Access violation - code c0000005 (first/second chance not available)
eax=d628f91d ebx=29d706e3 ecx=29d706e3 edx=0bd2feb8 esi=00000000 edi=00000000
eip=79fd897a esp=0bd2feb8 ebp=0bd2ff34 iopl=0 nv up ei ng nz ac pe cy
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010297
mscorwks!ThreadpoolMgr::FireTimers+0x8d:
79fd897a 8b3f mov edi,dword ptr [edi] ds:0023:00000000=????????
这是堆栈跟踪
0:011> kb
ChildEBP RetAddr Args to Child
0bd2ff34 79fd8a38 0bd2ff9c 79f7759b 2fb73db5 mscorwks!ThreadpoolMgr::FireTimers+0x8d
0bd2ffa8 79fd88ef 00000003 0bd2ffec 7c80b713 mscorwks!ThreadpoolMgr::TimerThreadFire+0x64
0bd2ffb4 7c80b713 0012eb4c 00000010 00000003 mscorwks!ThreadpoolMgr::TimerThreadStart+0x57
0bd2ffec 00000000 79fd8897 0012eb4c 00000000 kernel32!BaseThreadStart+0x37
这是我的版本信息
0:011> !EEVersion
2.0.50727.3053 retail
Server mode with 4 gc heaps
SOS Version: 2.0.50727.3625 retail build
The following access violation is crashing my application every few days. What could be causing this?
(80c.f28): Access violation - code c0000005 (first/second chance not available)
eax=d628f91d ebx=29d706e3 ecx=29d706e3 edx=0bd2feb8 esi=00000000 edi=00000000
eip=79fd897a esp=0bd2feb8 ebp=0bd2ff34 iopl=0 nv up ei ng nz ac pe cy
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010297
mscorwks!ThreadpoolMgr::FireTimers+0x8d:
79fd897a 8b3f mov edi,dword ptr [edi] ds:0023:00000000=????????
Here is the stacktrace
0:011> kb
ChildEBP RetAddr Args to Child
0bd2ff34 79fd8a38 0bd2ff9c 79f7759b 2fb73db5 mscorwks!ThreadpoolMgr::FireTimers+0x8d
0bd2ffa8 79fd88ef 00000003 0bd2ffec 7c80b713 mscorwks!ThreadpoolMgr::TimerThreadFire+0x64
0bd2ffb4 7c80b713 0012eb4c 00000010 00000003 mscorwks!ThreadpoolMgr::TimerThreadStart+0x57
0bd2ffec 00000000 79fd8897 0012eb4c 00000000 kernel32!BaseThreadStart+0x37
Here is my version information
0:011> !EEVersion
2.0.50727.3053 retail
Server mode with 4 gc heaps
SOS Version: 2.0.50727.3625 retail build
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
c0000005异常一般是内存异常。您正在尝试访问内核空间中的内存,或者您对该内存区域没有权限。不幸的是,您提供的信息不足以提供进一步的帮助。至少您应该提供堆栈跟踪,更好地提供“analyze -v”的输出。
查看最后一条汇编指令,我可以看到它尝试复制地址 0 处的数据,因此此异常只是由于尝试取消引用地址 0 引起的。
The c0000005 exception is generally a memory exception. You are trying to access memory that is either in the kernel space or you have no permission on the memory area. The information that you provide is unfortunately not sufficient to help any further. At least you should provide the stack trace, better the output of 'analyze -v'.
And looking at the last assembly instruction I can see it tries to copy data at address 0, so this exception is simply caused by trying to dereference adress 0.