21

C++ ライブラリにいくつかのバインディングを提供する C++ で記述された node.js モジュールがあります。ライブラリは SIGSEGV でクラッシュするため、GDB でデバッグして何が問題なのかを調べる必要があります。

モジュールのソースは既にあります。./node_modules/somelib/そのフォルダーに移動して入力するとnpm install、ライブラリがコンパイルされ、node.js から require('somelib') を介して使用できます。ノードに gdb をアタッチしてエラーを再現できますが、スタック トレースにはnode_modules/somelib/Release/somelib.node.

これが重要かどうかはわかりませんが、ライブラリは を使用してコンパイルされてnode-gypいます。

  • 質問 1:ソース コードをロードする方法、または gdb をソース コードにポイントする方法を教えてください。
  • 質問 2:node-gypデバッグ シンボルを生成するように構成するにはどうすればよいですか?
4

4 に答える 4

19

node-gypドキュメントでこれに対する答えを見つけました。--debug解決策は、フラグを使用してビルド プロセスを呼び出すことです。node-gyp configure --debugこれは、 and/orを呼び出すことを意味しnode-gyp build --debugます。Release次に、フォルダーの代わりにDebugフォルダーが作成されます。gdb はソース ファイルを自動的にロードします。

于 2014-04-22T21:04:57.200 に答える