Rastrear a execução de todo o Javascript em um aplicativo da web

Eis a situação: um aplicativo da Web complexo não está funcionando e é possível produzir um comportamento indesejado de maneira consistente. A causa do problema não é conhecida.

Proposta: rastrear os caminhos de execução de todo o código javascript. Essencialmente, produz dois logs monstruosos que podem ser alimentados em um algoritmo de diff para determinar onde o comportamento relacionado ao bug começa a divergir (já que a causa não é aparente no comportamento do aplicativo e na compreensão e obtenção de uma cópia do código JS real). ser executado é difícil, devido às muitas páginas que devem ser comutadas e copiadas do inspetor da Web. Tornar difícil é o fato de que todas as páginas são dinamicamente combinadas com o código Perl, onde partes significativas do código JS existem apenas como ( dinâmico ...) Perl strings).

O Web Inspector no Chrome não tem uma opção que eu saiba para registrar um rastreamento de execução. Basicamente, o que eu gostaria é de um log de cada linha de JS que é executada, na ordem em que são executados. Eu não vejo isso como sendo uma coisa difícil de obter, uma vez que a VM JS é single-threaded. O problema é simplesmente que as ferramentas existentes para o usuário não são projetadas para uma depuração tão hardcore. Se olharmos para o Profiler no Dev Tools, é claramente capaz do tipo de instrumentação que eu preciso, mas é fundamentalmente projetado para fazerperfilamento ao invés derastreamento.

Como posso começar com isso? Existe alguma maneira eu posso construir o Chrome a partir do código-fonte, onde eu posso

desligar o JIT no V8?registrar cada expressão de javascript avaliada pelo V8 em um arquivo

Não tenho experiência com o lado do desenvolvimento do Chrome. Então, por exemplo, links para dev-builds / branches / versões / distros de Chrome / Chromium / Canary (qual a diferença?) são bem-vindos.

Nesse ponto, parece que instrumentar o navegador com um poderoso rastreio js ainda será mais fácil do que redesenhar o aplicativo com bugs. A arquitetura da página é um desastre, mas a funcionalidade é complexa e quase totalmente funciona. Eu só tenho que encontrar a única peça que falta.

Como alternativa, se ferramentas desse tipo já existirem, quais são algumas outras palavras-chave com as quais posso pesquisar? "Code Tracing" é praticamente a única coisa que posso fazer.

eu testeidynaTrace, o que foi uma feliz coincidência, pois o nosso aplicativo suporta o IE (na verdade, o suporte ao Chrome acabou de sair do beta), mas isso não produz um despejo de texto, ele basicamente produz ummassivo Win32 UI expando-tree, que é impossível de diferenciar. Isso me deixa muito triste porque euconhecer Foi muito mais difícil fazer com que a representação do traço aparecesse dessa maneira e, no entanto, acaba sendo quase totalmente inútil. Quem vai rolar para cima e para baixo a visualização em árvore e ver algo realmente útil nela, em algo que não seja um exemplo de brinquedo de um aplicativo da web?

questionAnswers(3)

yourAnswerToTheQuestion