状況は次のとおりです。複雑な Web アプリが機能しておらず、望ましくない動作が一貫して発生する可能性があります。問題の原因は不明です。
提案: すべての JavaScript コードの実行パスをトレースします。基本的に、2 つの巨大なログを生成し、これを diff アルゴリズムにフィードして、バグに関連する動作が分岐し始めた場所を特定します (原因はアプリケーションの動作からは明らかでなく、実際の JS コードのコピーを理解して取得するため) Web インスペクターから切り替えてコピーする必要があるページが多いため、実行が困難です. JS コードの重要な部分が (動的...) Perl 文字列)。
Chrome の Web インスペクターには、実行トレースを記録するためのオプションがありません。基本的に私が望むのは、実行された順序で、実行された JS のすべての行のログです。JS VM がシングルスレッドであることを考えると、これを入手するのは難しいことではないと思います。問題は単純に、既存のユーザー向けツールが、これほどハードコアなデバッグ用に設計されていないことです。Dev Tools の Profiler を見ると、明らかに必要な種類の計測が可能ですが、基本的にはトレースではなくプロファイリングを行うように設計されています。
どうすればこれを開始できますか? ソースから Chrome をビルドできる方法はありますか?
- V8でJITをオフにしますか?
- V8 によって評価されたすべての JavaScript 式をファイルに記録します
Chrome の開発側の経験はありません。たとえば、Chrome/Chromium/Canary の dev-builds/branches/versions/distros (違いは何ですか?) へのリンクは大歓迎です。
現時点では、バグのあるアプリを再設計するよりも、強力な js トレースを使用してブラウザーをインストルメント化する方が簡単なようです。ページのアーキテクチャはひどいものですが、機能は複雑で、ほぼ完全に機能します。欠けているピースを1つ見つけるだけです。
または、この種のツールが既に存在する場合、それらを検索できる他のキーワードは何ですか? 「コードトレース」は、私が思いつくことができる唯一のものです。
私はdynaTraceをテストしました。これは、私たちのアプリが IE をサポートしているため (実際、Chrome のサポートはベータ版から出たばかりです)、幸運な偶然でしたが、これはテキスト ダンプを生成しません。 . トレースの表現をそのように表示するのがどれほど難しいかを知っているので、これは私を本当に悲しくさせます。ツリー ビューを上下にスクロールして、Web アプリのおもちゃの例以外に、本当に役立つものを表示するのは誰でしょうか?