我有一个用 C++ 编写的 node.js 模块,它为 C++ 库提供一些绑定。该库因 SIGSEGV 而崩溃,因此我需要使用 GDB 对其进行调试并找出问题所在。
我已经有该模块的源代码./node_modules/somelib/
如果我进入该文件夹并输入npm install
该库已编译,可以通过 node.js 中的 require('somelib') 使用。我可以将 gdb 连接到节点并重现错误,但在堆栈跟踪中我只看到node_modules/somelib/Release/somelib.node
.
我不确定这是否重要,但该库是使用node-gyp
.
-
问题一:如何加载源代码或将 gdb 指向源代码?
-
问题2:我该如何配置
node-gyp
生成调试符号?
我刚刚在 中找到了这个问题的答案node-gyp
文档。解决方案是使用以下命令调用构建过程--debug
旗帜。这意味着调用node-gyp configure --debug
and/or node-gyp build --debug
。然后代替Release
文件夹aDebug
将创建文件夹。然后 gdb 将自动加载源文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)