How to debug division by zero exception in Internet Explorer?

倾然丶 夕夏残阳落幕 提交于 2019-12-05 01:14:43

To get the line of code that throws the exception, you'll have to ask Microsoft for the source to mshtml.dll. That's where the exception is thrown, by the instruction at address 00378B89.

You could try opening the CPU window and looking at the machine code from the DLL, but if you're not already comfortable debugging someone else's machine code, I don't know how much good it'll do you.

The debugger's stack trace and the JCL stack trace look pretty similar to me. The main difference is that the JCL tries to give some information about the DLL function and the debugger doesn't. That's not much difference, though; the information the JCL shows is meaningless since the nearest function name it finds is nearly a megabyte away from the actual faulting instruction. The other difference is whether TWinControl.MainWndProc is included in the stack trace, which I suspect is due to whether the stack trace was determined by reading DCU debug information or by analyzing the physical contents of the stack.

Paul W

If you don't use Math.SetExceptionMask([exInvalidOp, exDenormalized, exZeroDivide, exOverflow, exUnderflow, exPrecision]), you will find the fix only works on 64 bit Windows.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!