【问题标题】:What could cause an access violation from mscorwks!ThreadpoolMgr::FireTimers?什么可能导致 mscorwks!ThreadpoolMgr::FireTimers 的访问冲突?
【发布时间】:2012-01-11 01:46:24
【问题描述】:

以下访问冲突每隔几天就会使我的应用程序崩溃。这可能是什么原因造成的?

(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

【问题讨论】:

  • 不可能说没有堆栈跟踪
  • 第一次机会异常是被处理的异常。
  • @Sean:异常已处理。您不必担心,除非您实际上可以更改重新编译 mscorwks.dll。
  • leppie,为什么你认为这个异常被处理了?这不是第一次机会例外。发生此异常后,我无法恢复(继续运行应用程序)。

标签: .net windbg threadpool sos mscorwks.dll


【解决方案1】:

c0000005 异常一般是内存异常。您正在尝试访问内核空间中的内存,或者您对内存区域没有权限。遗憾的是,您提供的信息不足以进一步提供帮助。至少你应该提供堆栈跟踪,更好地输出'analyze -v'。

查看最后一条汇编指令,我可以看到它试图复制地址 0 处的数据,所以这个异常只是由于试图取消引用地址 0 引起的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 2012-01-30
    • 1970-01-01
    相关资源
    最近更新 更多