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

2024-01-22

我有一个用 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(使用前将#替换为@)

如何调试nodejs的二进制模块? 的相关文章

  • CMake(Ninja 后端)使用 /MT 编译

    我有一个类似的问题CMake 使用 MT 而不是 MD 进行编译 https stackoverflow com questions 14172856 cmake compile with mt instead of md但有一些差异 我正
  • 每个元素的 asp.net Web 表单自定义错误消息

    我创建了一个 Web 应用程序 表单 以及后端 SQL 插入和查询 目前我正在显示所有用户错误消息 div style padding 1em div
  • 如何以编程方式删除受信任的根证书颁发机构中的证书?

    我需要能够从组织中的每台电脑中删除特定的证书 是的 我可以逐个座位 但我要到周四才能完成 而且我没有人力逐个座位 是否有使用 C 的编程方式来执行此操作 我认为你不需要编写任何 C 看看certmgr exe del http msdn m
  • 获取列表框中视图中的项目

    我有一个 ListBox 其属性 VirtualizingStackPanel VirtualizationMode 设置为 回收 我正在绑定一个自定义集合 实现IList and IList
  • 如何在 C# 中以编程方式将行添加到 DataGrid?

    正如标题所述 我正在尝试使用 C 以编程方式将行添加到 DataGrid 但我似乎无法使其工作 这是我到目前为止所拥有的 I have a DataGrid declared as dg in the XAML foreach string
  • ng 不被识别为内部或外部命令。詹金斯 + 角度 CLI

    我正在尝试为 Angular CLI 项目设置 Jenkins 我已经在 J enkins 服务器上以特定用户帐户安装了节点和 Angular Cli 如果我在服务器上打开命令提示符并执行以下命令来验证它们是否正确安装 结果如下 我已经使用
  • 用于 C++ 中图像分析的 OpenCV 二进制图像掩模

    我正在尝试分析一些图像 这些图像的外部周围有很多噪声 但内部有一个清晰的圆形中心 中心是我感兴趣的部分 但外部噪声正在影响我对图像的二进制阈值处理 为了忽略噪音 我尝试设置一个已知中心位置和半径的圆形蒙版 从而使该圆之外的所有像素都更改为黑
  • 注入包含接口的所有已注册实现的 Enumerable

    给出以下接口 public interface IMyProcessor void Process 我希望能够注册多个实现 并让我的 DI 容器将它们的可枚举注入到这样的类中 public class MyProcessorLibrary
  • DateTime.ParseExact - 为什么 yy 变成 2015 而不是 1915

    为什么 NET 假定以下年份是 2015 年 而不是 1915 年 var d DateTime ParseExact 20 11 15 dd MM yy new CultureInfo en GB 我想 它会尝试接近 但其背后是否有合理的
  • MongoDB $lookup 对一个文档的对象数组进行查找

    我在网上搜索过 但找不到与我的情况相符的内容 情况是这样的 我正在使用聚合将一个集合和来自另一个集合的一个文档组合在一起 restaurants aggregate match id in idList lookup from tags l
  • MINIX内部碎片2

    我正在用 C 语言编写一些软件 它递归地列出给定目录中的所有文件 现在我需要计算出内部碎片 我花了很长时间研究这个问题 发现 ext2 上的内部碎片只发生在最后一个块中 我知道理论上你应该能够从索引节点号获得第一个和最后一个块地址 但我不知
  • Mongodb 的 Mongoose 与 Mongoose

    我正在学习 NodeJ 要从 NodeJS 连接并使用 MongoDB 我看到很多使用 Monk 或 Mongoose 的示例 这两个库等效吗 它们具有相同的功能还是都有特定的用途 作为 NodeJS 的初学者 我应该使用哪个 以下是使用
  • 具有多个父项的 Qt 树模型

    我想构建一棵树 其中一个元素可以引用另一个元素 我想要构建的树是 像这样的东西 A B C D E F P this is a pointer to C D first child of C E second child of C I fo
  • 让 Windows 尝试读取文件

    我正在对 Windows 文件系统进行某种封装 当用户请求打开文件时 Windows 调用我的驱动程序来提供数据 在正常操作中 驱动程序返回缓存的文件内容 但是 在某些情况下 实际文件没有缓存 我需要从网络下载它 问题是是否有可能让 Win
  • Windows Phone 的 JSON 反序列化

    我正在尝试反序列化以下 JSON 但我真的不知道如何使用 JSON net 来完成这项工作 我正在使用 C 和 JSON Net 库 我的 JSON 如下 found 3 bounds 43 54919 172 62148 43 54487
  • 为什么我可以在另一个函数中定义一个函数?

    请参阅下面的代码 我在另一个函数中定义了一个函数 void test1 void void test2 void printf test2 n printf test1 n int main void test1 return 0 这个用法
  • 为什么存在系统调用

    我一直在阅读有关系统调用及其在 Linux 中如何工作的内容 我还有更多的阅读要做 但我读过的一件事都没有回答 那就是 为什么我们需要系统调用 我知道系统调用是用户空间程序要求内核执行某些操作的请求 但我的问题基本上是 为什么用户空间程序本
  • 异步/等待 - 是*并发*吗?

    我一直在考虑 C 5 中新的异步内容 并且出现了一个特殊问题 据我了解 await关键字是一个简洁的编译器技巧 语法糖来实现连续传递 http en wikipedia org wiki Continuation passing style
  • 如何配置 qt Creator 以显示 C++ 代码而不是反汇编程序?

    昨天我做了很多事情 比如更新 GCC Clang 和重新安装 Qt Creator 今天 在逐步调试我的代码时 调试器显示的是反汇编代码 而不是我编写的 C 代码 紧迫F10 or F11 调试器正在进入汇编代码而不是 cpp nor h我
  • java有类似C#的属性吗? [复制]

    这个问题在这里已经有答案了 C 属性 我的意思是 get 和 set 方法 是一个非常有用的功能 java 也有类似 C 的属性吗 我的意思是我们如何在 java 中实现类似以下 C 代码的内容 public string Name get

随机推荐

  • 如何将 Scala 脚本拆分为多个文件

    作为脚本语言 Scala 是否有某种 include 指令 或者有没有办法从其他脚本启动脚本 The scala命令有 load filename命令以交互方式加载 Scala 文件 或者 scala命令的 i filename参数可用于预
  • Android 中的 Viewpager 底部有固定选项卡,每个选项卡中有图标和文本

    我想创建以下布局 一个带有 viewpager 的活动以及一个选项卡 该选项卡保留在活动的底部以指示用户位于 4 个片段中的哪一个 并且所选选项卡通过 活动颜色 突出显示 我花了一些时间在网上查看各种资源来添加此选项卡 http devel
  • 更好地使用验证或离开事件来验证文本框数据?

    在为 VB NET 文本框编写验证逻辑时 最好使用哪个事件处理程序 证实 or Leave 据我了解 它们是同时发生的 然而 根据这篇文章 MSDN Control Leave 事件 http msdn microsoft com en u
  • CSS 网格。隐藏未使用的区域

    我有基于已知元素构建的网格模板区域 但并非所有元素都可以从数据库中获取 如果我没有从数据库中获取某些内容 那么我不会渲染 html 元素 并且会得到一个带有间隙的空 虚线 行 请参阅附图 空行位于蓝色框下方 是否可以隐藏未使用的区域或消除其
  • 如何使用 avx 指令将 float 向量转换为短整型?

    基本上我如何使用 AVX2 内在函数编写与此等效的内容 我们在这里假设result in float属于类型 m256 while result属于类型short int or short int 8 for i 0 i lt 8 i re
  • 关于Javascript注入的问题

    我一直在 asp net mvc 学习网站上阅读有关 JavaScript 注入的内容 这真是令人大开眼界 我什至从未意识到 想过有人使用 JavaScript 来进行一些奇怪的屁股注入攻击 然而 它给我留下了一些悬而未决的问题 First
  • 使用Python请求获取html?

    我正在尝试自学一些基本的网络抓取 使用 Python 的 requests 模块 我能够抓取各种网站的 html 直到我尝试了以下方法 gt gt gt r requests get http www wrcc dri edu WRCCWr
  • 如何使用变量来引用代号一中的组件?

    我使用 UIBuilder 创建了一个 UI 而不是总是使用findXXXX 我很乐意在Statemachine public class Statemachine private Container c private Tabs t in
  • 是否可以在 launchSettings.json 中引用环境变量?

    我想使用 NuGet 包中的可执行文件来运行我的代码 因此 该 exe 位于我的用户配置文件目录中 所以 该文件看起来像这样 profiles UITests commandName Executable executablePath C
  • 如何在 iOS Safari 上设置渐变背景透明度?

    以下 CSS 在 Safari 上不起作用 在 iPad iOS 上测试 map left navi background ffffff background moz linear gradient left ffffff 35 trans
  • 列表对象没有属性副本

    feed obj self get feed obj request kwargs get feed id ad ingredient id kwargs get ad ingredient id adingredient obj AdIn
  • 使用 tabulate Python 包生成正确的 LaTeX 表

    我正在使用tabulate https pypi python org pypi tabulate 用于生成正确 LaTeX 格式的表格的 Python 包 这是一个 MWE from tabulate import tabulate ta
  • 获取当前正在执行的 Javascript 的 URL

    我正在尝试查找当前正在执行的 javascript 的 url 我知道我可以使用window location href对于当前页面 但这不一定是正在执行的脚本的路径 任何帮助是极大的赞赏 Thanks EDIT 1 我完全愿意使用插件等来
  • 没有规则为“macosx10.10”创建目标 SDK 路径

    我使用的是mac osx10 10 QT5 4 VTK6 2 运行我的代码时出现以下错误 make 2 没有规则可以创建目标 Applications Xcode app Contents Developer Platforms MacOS
  • 获取 setState 不是一个函数

    我收到以下错误 bundle js 31367 未捕获类型错误 this setState 不是 功能 JSX componentDidMount ajax url http intelligencevillage wxtui cn ind
  • 从变量目标 c 中插入换行符

    我正在使用 xml 将数据拉入我的 iphone 应用程序 然后将 xml 值放入变量中 示例变量 123 London road n London n England 然后将该变量设置为标签 我希望换行符出现在标签中 而不是打印 n 如果
  • 是否可以使用 Spring API Gateway 进行威胁防护?

    我将使用 Netflix Zuul 实现 API 网关 是否可以设置任何规则来防止 SQL注入 XML 威胁防护 JSON 威胁防护 我发现只有外部解决方案 API 网关 支持它 None
  • 带有附加 SDK 的 Firefox 中的自定义上下文菜单?

    我希望向显示的 Firefox 上下文菜单添加一个菜单项 仅当用户右键单击特定 URL 时 我有一个测试 url 的函数 我曾经通过订阅 popupshowing 事件来做到这一点 var item document getElementB
  • 使用 MSMQ 和 SQL Server 进行分布式事务,但有时会出现脏读

    我们的 SQL Server 2014 数据库设置为READ COMMITTED SNAPSHOT 我们使用 MSMQ 和分布式事务 我们使用 MassTransit 2 10 在我们系统的一部分中 我们从队列中读取一条消息 进行数据库更新
  • 如何调试nodejs的二进制模块?

    我有一个用 C 编写的 node js 模块 它为 C 库提供一些绑定 该库因 SIGSEGV 而崩溃 因此我需要使用 GDB 对其进行调试并找出问题所在 我已经有该模块的源代码 node modules somelib 如果我进入该文件夹