5

これは、現在入手可能なものでは不可能かもしれないかなり複雑な質問ですが、簡単な方法があればそれは巨大です。Javascriptのブレークポイントでないブレークポイント(トレースポイント)?

私はChromeでいくつかのJavaScriptをデバッグしています。イベント駆動型であるため、ブレークポイントの代わりにコードのトレースレポート(呼び出されたものなど)を取得することをお勧めします。だから私はブレークポイントを残すどこに、私はローカルの関数名と引数を見たいと思います。

私が得ることができる最も近い次のように条件付きブレークポイントをドロップすることです:

Sample trace

このアプローチには二つの大きな問題があります。

  1. 各ブレークポイントにこれを貼り付けるにはあまりにも面倒です。各ブレークポイントのデフォルトのアクションとして選択できる場合、人々はそれを使用する可能性が非常に高くなります。
  2. Google Chromeでは、ログ呼び出しが2回発生します。

これらの問題のいずれかを乗り越える方法についてのアイデアはありますか?私はそれがIE with VSで可能かもしれないと思うが、UIは同じように扱いにくいようだ。

+1

DOMイベントのトレースに必要な場合は、コンソールの['monitorEvents()'](http://www.briangrinstead.com/blog/chrome-developer-tools-monitorevents)メソッドを試してみてください。 – kpozin

+0

私は実際に、非DOMオブジェクトの疑似イベントを投げて、monitorEventを一度に使用しようとしました。あなたはエラーを監視することでかなり遠くまで到達することができますが、私が必要とするきめ細かなフィルタリングはありません。 – Chris

答えて

0

私はこれを行うための何かを見つけることができなかったので、私はwrote my ownです。

console.logの呼び出しを常時挿入したり削除したりするのではなく、ログインしたままで、必要なときにのみ監視します。

警告:以下の特定のコードはテストされていません。

var debug = TraceJS.GetLogger("debug", "mousemove"); 
$('div').mousemove(function(evt) { 
    debug(this.id, evt); 
}); 

マウスがDIV上に移動するたびに、それはLOGEVENTが[「のMouseMove」、{その要素のIDを}]タグ付けされた生成楽しい部分は、することができるされ

選択を見イベント。あなたが唯一の要素#A用のMouseMoveイベントを見たい場合は、コンソールに次のように呼び出します。

TraceJS('a'); 

私はすべてのMouseMoveイベントを見たい場合は、あなたが呼び出すことができます。

TraceJS('mousemove'); 

イベントのみというあなたのフィルタに合ったものが表示されます。 TraceJS(引数なし)を呼び出すと、ログにはstopが表示されます。

1

最高の選択肢は、ChromeのJavascriptパネルでjavascriptコードを編集し、console.logを追加することでした。

これは、ページを読み込んだ後でブレークポイントを設定してからロギングラインを追加することができない限り機能しませんし、(悪いことに)リロードするたびに行う必要がありますページ。

あなたの検索で幸運を祈る!

1

IE11には、Visual Studioとは独立した「トレースポイント」が追加されました。彼らはあなたが3年前に尋ねたこととまったく同じです。 Chromeやその他のブラウザでは表示されませんが、間に合うとうれしいです!

+0

クール! https://msdn.microsoft.com/en-us/library/ie/dn255007(v=vs.85).aspx私はいつもトレースポイントを残してそれらをオンにすることができるので、私は今セットアップしたライブラリが好きです必要に応じてオンとオフを切り替えます。何が起こるかを推測する。 – Chris

関連する問題