2012-04-04 13 views
3

ノード実行可能ファイルのプレフィックスなしでコマンドラインから直接実行できるように、グローバルにインストールしたいNodeJsモジュール「some-module」があります。すなわち:$> some-module [args]これらの引数の1つを--debugにしたいと思います。私がこのモジュールのユーザーにnode --debug-brk node_modules/some-module/[path to entry point] [args]を実行するためにローカルディレクトリにインストールすることを要求したくないという理由があります。NodeJsアプリケーションをそのプロセス内からデバッグモードに切り替える

エラーが発生し
process.kill(process.pid, 'SIGUSR1'); 

node.js:201 
     throw e; // process.nextTick error, or 'error' event on first tick 
      ^
Error: Unknown signal: SIGUSR1 
    at EventEmitter.kill (node.js:366:17) 
    at Object.<anonymous> (c:\dev\some-module\app.js:94:17) 
    at Module._compile (module.js:441:26) 
    at Object..js (module.js:459:10) 
    at Module.load (module.js:348:31) 
    at Function._load (module.js:308:12) 
    at Array.0 (module.js:479:10) 
    at EventEmitter._tickCallback (node.js:192:40) 

それで

NodeJsドキュメントの状態は私がこれをやってみましたデバッグの高度な使用法セクション(http://nodemanual.org/latest/nodejs_ref_guide/debugging.node.js.html

The V8 debugger can be enabled and accessed either by starting Node.js with the --debug command-line flag or by signaling an existing Node.js process with SIGUSR1 .

です実行中のプロセスをデバッグモードに切り替えるには、何をする必要がありますか?

また、node-inspectorで特定のアプリケーションをデバッグしたいと思います。あなたはおそらく、アプリをインストールすることができます

答えて

0
私は私はあなたの質問を理解している場合、非常にわからないんだけど

、しかし...グローバルそれがNPMを使用してブレークポイントで停止しています。 package.jsonプット:npm start -g some-moduleを実行

... 
"scripts": {"start": "node --debug-brk some-module.js"}, 
"bin" : { "some-module" : "./some-module.js" }, 
... 

は、最初の行で中断します。 これで、ノードインスペクタをデバッグに使用できます。

コード内で停止している部分について、ノードはデバッガでビルドされています(これは非常に初歩的ですが)。 あなたがどこかのコードで含まれている場合:

debugger; 

して実行した:iドン、これはノード・インスペクターと同じではありません。

node debug some-module.js 

それが(デバッガでありノートを停止しますこれがノードインスペクタで実現できるかどうかは分かりません)。

あなたがこれをやっている理由を本当に理解していないが、これが役立つことを願っている。