I'm trying to find a root cause of the "Illegal instruction" exception (0xc000001d) with WinDbg. The project was built with VC++2015. I've got two memory dumps from two test runs.
For now I found the following that is true for both dumps:
- the exception points to the "
movq mmword ptr [ecx], xmm0
" instruction - xmm0 contains zeros
- the exception occurs in an object constructor
- the address is inside DS
- the address belongs to a heap entry which looks valid
- the address points to the object is being constructed, so it seems like it tries to put zero to the obj.m_data member that looks valid too
I have no idea where to go further, so I'd appreciate any directions.
UPD:
...
movq xmm0,mmword ptr [esi]
lea ecx,[edi+94h]
movq mmword ptr [ecx],xmm0 ; << this causes the exception