Tengo un sitio web que de repente comenzó a fallar Internet Explorer.Mi sitio web sigue fallando IE, no se puede depurar
El sitio web carga y comienza a ejecutar javascript, pero en algún lugar allí la maquinaria explota. Ni siquiera recibo un error de script, simplemente falla. Intenté pasar manualmente todas las líneas de js con el depurador incorporado, pero luego, por supuesto, el problema no ocurre.
Si decido depurar la aplicación cuando se bloquea, veo el siguiente mensaje.
Excepción no controlada en 0x6c5dedf5 en iexplore.exe: 0xC0000005: infracción de acceso que lee la ubicación 0x00000090.
Los 5 elementos de la pila de llamadas es similar a esto
Vgx.dll! 6c5dedf5()
[Marcos a continuación pueden ser incorrectos y/o falta, no hay símbolos cargados para Vgx.dll]
vgx.dll! 6c594d70()
vgx.dll! 6c594f63()
vgx.dll! 6c595350()
vgx.dll! 6c58f5e3()
mshtml.dll! 6f88dd17()
VGX.dll parece ser parte del procesador de vml y de hecho estoy usando VML. No estoy sorprendido porque he tenido tantos problemas con vml, los atributos tienen que establecerse en un orden específico, a veces no puedes establecer atributos cuando tienes elementos conectados al dom o viceversa (todo por cierto no documentado) pero luego los problemas por lo general puede ser reproducido al depurar pero no ahora :(
El problema también se produce en ningún modo de plugin-
¿existe un método mejor que el ensayo y error para resolver este
Editar:.? Al agregar una consola que muestra todas las modificaciones sospechosas del DOM, el problema solo se produce a veces (la consola también implementado en JavaScript en la misma página, puedo ver la salida incluso después de un bloqueo ya que la ventana aún está visible) Aparentemente parece ser una especie de condición de carrera.
Logré rastrearlo aún más, y parece ocurrir cuando se quita un objeto del DOM demasiado rápido después de que se acaba de agregar. (lo más probable es que solo para elementos vml con algún atributo especial, no intenté más) y no se puede arreglar agregando un bucle muerto delante de removeChild (solución bastante mala de todos modos), la página debe ser renderizada por el navegador una vez después de addChild antes de que pueda llamar a removeChild. suspiro
es broma - pero, bueno, usted podría ser capaz de elaborar una (otra) exploit para el IE de esta. Quiero decir que terminas leyendo desde alguna ubicación de memoria. Tal vez puedas lograr que esto haga algo realmente malo. Además, un Windows/IE totalmente parcheado y actualizado no debería colapsar desde ningún sitio web, sin importar qué tan incorrecto sea su código. Tal vez hay algún lugar para informar esto? – zerm
Por favor envíeme una página de repro o URL; ¡Estoy feliz de echarle un vistazo! (ericlaw @ microsoft). ¡Gracias! – EricLaw
FYI, la próxima vez configure su servidor de símbolos en el servidor de símbolos de Microsoft para obtener una mejor pila de llamadas: http://msdn.microsoft.com/en-us/library/b8ttk8zy%28v=vs.80%29.aspx –