gpt4 book ai didi

c++ - 如何调试nodejs的二进制模块?

转载 作者:IT老高 更新时间:2023-10-28 22:10:51 25 4
gpt4 key购买 nike

我有一个用 C++ 编写的 node.js 模块,它为 C++ 库提供了一些绑定(bind)。该库因 SIGSEGV 崩溃,因此我需要使用 GDB 对其进行调试并找出问题所在。

我已经在 ./node_modules/somelib/ 中找到了模块的源代码,如果我转到该文件夹​​并键入 npm install,则该库已编译并且可以通过 node.js 的 require('somelib') 使用。我可以将 gdb 附加到 Node 并重现错误,但在堆栈跟踪中我只看到 node_modules/somelib/Release/somelib.node

我不确定这是否重要,但该库是使用 node-gyp 编译的。

  • 问题一:如何加载源代码或将gdb指向源代码?
  • 问题 2:如何配置 node-gyp 以生成调试符号?

最佳答案

我刚刚在 node-gyp 文档中找到了答案。解决方案是使用 --debug 标志调用构建过程。这意味着调用 node-gyp configure --debug 和/或 node-gyp build --debug。然后将创建一个 Debug 文件夹,而不是 Release 文件夹。然后 gdb 会自动加载源文件。

关于c++ - 如何调试nodejs的二进制模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23228868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com