2012-01-15 13 views
0

v8でコールバックの送信元情報(ファイル、行番号、列番号)を特定できますか?v8でコールバックの送信元情報を判断する方法

私はそれを行うことは、正確に依存することになると思い、私はあなたがJavaScriptでこれを行うことができますことを認識してないんだけど、あなたがそれをデバッグすることができれば、それはあなたのファイル/行などが表示されているはずです。..

function foo(callback) { 
    var x = callback(); 
    if (typeof x !== "string") { 
     //hmmm, x is not as expected, I want to know more about the callback. 
    } 
} 
+0

v8はNode.jsと同じですか? – katspaugh

+0

yep ............ – coen

+0

その後、Node.jsタグを追加すると、知識の豊富なオーディエンスが集まる可能性があります。 – katspaugh

答えて

0

あなたの設定と私は自分自身でそれをやったことはありません - それはノード(v8を使用する)のようにいくつかの種類のsupport for thatがあります。

は便利かもしれません?:v8 DebuggerProtocol

+0

実際には、次のように使用することがあります。xが期待どおりでない場合は、まずデバッガー文を作成してから同じコールバックを再度呼び出します。 – coen

+0

明らかに、IDEにはCloud9(Webベース)のようなサポートもあります。正直ではありませんが、ショットに値する可能性があります。 http://stackoverflow.com/questions/5652972/ide-and-debugger-for-node-js – Adam

1

callsiteはこれに役立ちます。

これは、スタックトレースを取得するために使用できるグローバル変数__stackを公開します。そして現在の行番号である__line

+0

私はどのように表示されません。あなたは例を投稿できますか? – coen

+0

実際にあなたが望むことができるかどうかは分かりません。あなたは何を正確にしたいですか?コールバックがどのファイルに定義されていて、どの行番号を知っていますか? – fent

+0

はい、それは私が欲しいものです。すべての関数にソース情報を追加するために 'Function'のコンストラクタをハックする必要がある場合は、それは問題ありませんが、どうすればよいか分かりません。 – coen