0

javascipt で単一のステートメントを実行する必要がある nodejs で面白いことをしようとしていますshows all the objects that are present in the current context

これらのオブジェクトは、私または nodejs 環境によって作成された可能性があります。

これは javascript で促進されますか?

1 つの用途は、デバッグ目的です。

4

1 に答える 1

0

jsレベルからはできません。デバッガーからすべてのフレームとクロージャー スコープ変数を取得できます (自動化は非常に簡単require('_debugger')です。これを試す準備ができている場合は、V8 デバッガー プロトコルと組み込みの node.js クライアントの詳細を説明できます。

アップデート:

ノード コアからのデバッガー クライアントの基本的な使用法:

var DebuggerClient = require('_debugger').Client;
var dc = new DebuggerClient();
dc.connect(5858);  // you need to start your script with "node --debug-brk=5858 script-to-debug.js"

// listen breakpoint:
dc.on('break', function(res) {
   // sctipt id, line, location here
   dc.reqBacktrace(function(err, res) {
      // res.frames array
   });

   dc.reqScopes(function(scopes) {
      // SCOPES! TADAM!
   });

});

最初に「デバッガー」キーワードを使用してみて、結果を調べてから、スクリプトからブレークポイントの設定/変更を続けてください。

node 、node-vim-debuggerでどのように使用されているかを確認し、何か不足している場合はV8 デバッガー プロトコルのドキュメントを参照してください。

デバッグ中のスクリプト自体から同様の APIにアクセスできることに注意してください。スクリプトの先頭にブレークポイントを設定するために使用される方法を参照してください。

// script is a reference to Script object, see "vm" module
global.v8debug.Debug.setBreakPoint(script, 0, 0);
于 2013-09-26T06:56:50.750 に答える