Что может вызвать нарушение прав доступа от mscorwks! ThreadpoolMgr :: FireTimers?

Следующее нарушение прав доступа разбивает мое приложение каждые несколько дней. Что может быть причиной этого?

(80c.f28): Access violation - code c0000005 (first/second chance not available)
eax=d628f91d ***=29d706e3 ecx=29d706e3 edx=0bd2feb8 esi=00000000 edi=00000000
***=79fd897a esp=0bd2feb8 ***=0bd2ff34 iopl=0 nv up ei ng nz ac pe cy
cs=0*** 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 0012**** 00000010 00000003 mscorwks!ThreadpoolMgr::TimerThreadStart+0x57
0bd2ffec 00000000 79fd8897 0012**** 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
1 ответ

Исключение c0000005 обычно является исключением памяти. Вы пытаетесь получить доступ к памяти, которая находится либо в пространстве ядра, либо у вас нет разрешения на область памяти. Информация, которую вы предоставляете, к сожалению, не достаточна, чтобы помочь ей в дальнейшем. По крайней мере, вы должны предоставить трассировку стека, лучше результат "анализа -v".

И, глядя на последнюю инструкцию сборки, я вижу, что она пытается скопировать данные по адресу 0, поэтому это исключение просто вызвано попыткой разыменования адреса 0.

licensed under cc by-sa 3.0 with attribution.