Rastrea la ejecución de ALL Javascript en una aplicación web

Aquí está la situación: una aplicación web compleja no funciona, y es posible producir un comportamiento no deseado de manera constante. La causa del problema no se conoce.

Propuesta: Trazar las rutas de ejecución de todos los códigos javascript. Esencialmente, produzca dos registros monstruosos que luego se pueden alimentar a un algoritmo de diferencias para determinar dónde el comportamiento relacionado con el error comienza a divergir (ya que la causa no es aparente del comportamiento de la aplicación y comprende y obtiene una copia del código JS real). ejecutarse es difícil, debido a las muchas páginas que se deben cambiar y copiar desde el inspector web. Lo que dificulta es el hecho de que todas las páginas se empalman dinámicamente junto con el código Perl, donde partes significativas del código JS solo existen como ( dinámico ...) cuerdas Perl).

El inspector web en Chrome no tiene una opción que yo conozca para registrar un seguimiento de ejecución. Básicamente, lo que me gustaría es un registro de cada línea de JS que se ejecuta, en el orden en que se ejecutan. No veo esto como algo difícil de obtener dado que la máquina virtual JS es de un solo hilo. El problema es simplemente que las herramientas existentes orientadas al usuario no están diseñadas para esta depuración tan profunda. Si nos fijamos en el Perfilador en las Herramientas de desarrollo, es claramente capaz del tipo de instrumentación que necesito, pero está diseñado fundamentalmente para hacerloperfilado en lugar derastreo.

¿Cómo puedo empezar con esto? ¿Hay alguna manera de poder construir Chrome desde la fuente, donde puedo

apagar JIT en V8?registrar cada expresión javascript evaluada por V8 en un archivo

Tengo cero experiencia con el lado de desarrollo de Chrome. Así por ejemplo Los enlaces a dev-builds / sucursales / versiones / distribuciones de Chrome / Chromium / Canary (¿cuál es la diferencia?) son bienvenidos.

En este punto, parece que la instrumentación del navegador con un potente rastreo de js probablemente sea más fácil que el rediseño de la aplicación con errores. La arquitectura de la página es un desastre, pero la funcionalidad es compleja y funciona casi completamente. Solo tengo que encontrar la pieza que falta.

Alternativamente, si ya existen herramientas de este tipo, ¿con qué otras palabras clave puedo buscarlas? "Rastreo de código" es prácticamente lo único que se me ocurre.

probédynaTrace, que fue una feliz coincidencia ya que nuestra aplicación es compatible con IE (de hecho, el soporte de Chrome acaba de salir de la versión beta), pero esto no produce un volcado de texto, básicamente produce unmasivo Win32 UI expando-tree, que es imposible de diferenciar. Esto me pone muy triste porquesaber cuánto más difícil fue hacer que la representación de la traza se mostrara de esa manera, y sin embargo, resulta casi completamente inútil. ¿Quién va a desplazarse hacia arriba y hacia abajo en esa vista de árbol y ver algo realmente útil en ella, en algo que no sea un ejemplo de juguete de una aplicación web?

Respuestas a la pregunta(3)

Su respuesta a la pregunta