2011-08-12 12 views
0

私は既存のプロジェクトで作業することが多いため、他の人の作業の途中でクラッシュする必要があります。 Javascriptで呼び出された機能を表示する

  • はの形で、何が起こったのか正確に見せて

    1. ロードJSアプリケーション
    2. スタート/一時停止記録活動:最近は少しの時間で、私は私がこれを行うに見つけることができるものは何でもツールを探していますソースコードを変更せずに呼び出された関数たとえば、

    1. (クリック)
    2. 上のイベント(コール):

      <script language="javascript"> 
      var fn1 = function(strvar){ alert('var='+strvar); fn2(strvar); } 
      var fn2 = function(strvar2){ alert('var='+strvar2); } 
      </script> 
      <a href="javascript:fn1(this.innerHTML);">click here</a> 
      

      私はアンカーをクリックした後、(せいぜい)はこのような何かを取得する必要がありますfn1( "ここをクリック")

    3. (コール)fn1の内側からfn2( "ここをクリック")がpctで呼び出されました。 2

    何らかの種類のスタックトレースがありますが、ソースを変更する必要はありません。そのままの時間がかかります。

  • +1

    FirefoxでFirebugプラグインを試しましたか?それは、デバッグのかなり良いサポートを持っています – Gaim

    答えて

    0

    あなたの最も内側の関数で

    debugger; 
    

    を書く場合は、放火犯やクロムdevのツールを開くことができますし、それがその行に当たったとき、彼らのデバッガが一時停止します。次に、ツールの右側のセクションで、スタックトレースとその他の関連データ(地元の人など)を見ることができます。

    所有する関数に1行追加するだけで、誰のコードでも呼び出せます。

    +0

    それは私が、 "デバッガを追加する場所を見つけることを試みているのだ、"なぜなら私は外部ファイルからハンドラを付け加えていて、他の言語の時折var名と一緒に動的に付けられたスクリプトの10分の1を持っているからです。 –

    +0

    ああ、私は今問題を見る。関心のある要素を調べることができます。インスペクタ(特にChrome)では、右ペインの下部に、イベントリスナーとそのイベントに関連付けられている機能のリストが表示されます。そのリストをチェックし、必要に応じてブレークポイントを追加することができます(コードに 'debugger'ステートメントを追加するか、デバッガで他の人のコードにブレークポイントを手動で設定することによって)。 残念ながら、ここで大きな解決策はありません。 – Steve

    関連する問題