如何通过GDB调试nodejs addon
How to debug nodejs addon by gdb
标题
我正在编写一个node.js c 插件,当我尝试调试我的c 时,我在互联网上搜索的方式完全可以使用。
我从互联网上得到的是GDB节点设置args app.js运行
我明白了/usr/local/bin/node":不采用可执行格式:未识别的文件格式
键入file/usr/local/bin/node
之后我明白了/usr/local/bin/node:Mach-O通用二进制/usr/local/bin/node(用于体系结构i386):MACH-O可执行i386/usr/local/bin/node(用于体系结构x86_64):Mach-O 64位可执行X86_64
我不konw为什么我的GDB告诉我节点不是可执行的fomat
您是否启用了debuging启用node.js?看起来您在Mac上,如果您使用Homebrew进行安装模式,请尝试以下操作:
brew install nodejs --with-debug
然后尝试:
gdb --args /usr/local/bin/node app.js
Mac上的GDB也已被弃用了LLDB,因此您也可以尝试LLDB:
lldb -- /usr/local/bin/node app.js
如果您是vscode用户,则可能会发现这个有用。
基本步骤是:
-
安装VSCODE插件https://github.com/vadimcn/vscode-lldb
-
设置您的启动。
{
"version": "0.2.0",
"configurations": [{
"type": "lldb",
"request": "launch",
"name": "Launch Program",
"program": "/absolute/path/to/node",
"args": [
"/absolute/path/to/your/index.js"
]
}]
}
然后像在VS代码中一样设置断点。
快乐调试!
,如果您想要更多详细的说明,我还在这里发布了一个详细的博客。
https://medium.com/@atulanand94/debugging-nodejs-c-addons-using-vs-code-code-code-code-27e9940fc3ad
这对我有用:
1。)删除.vscode/lainmy.json文件
2。)转到VSCODE的"运行"选项卡,现在它将为您提供一个链接,以click nater nater'create启动启动.json文件。单击它,然后选择" C (GDB/LLDB)&quot。
3。)现在编辑"程序"answers" args"正如Atul在他的回答中所描述的。由此产生的启动。JSON将看起来像这样:
"configurations": [
{
"name": "(lldb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "/usr/local/homebrew/bin/node",
"args": ["${workspaceFolder}/test/test_binding.js"],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"console": "externalTerminal",
"MIMode": "lldb"
}
]
4。)通过在您的C 插件中指定无效的指针来对其进行测试。Vscode将自动在崩溃的行上破裂。
另外,brew install nodejs --with-debug
不再工作,不需要。
- NodeJs 服务器充斥着 UDP 广播,不发送响应
- 在nodejs中使用本机代码的最佳方法是什么?
- 不将数据 socket.io c++(客户端)发送到 nodejs(服务器)socket.io
- 如何使用 Node-addon-API 实现 node-nan 回调
- NodeJS:node-gyp 编译与等效的 gcc -lm 选项
- TypeError: [c++ addon class] 不是构造函数
- 在 NodeJS 异步调用C++ DLL
- 与纯 V8 相比,NodeJS 是否有任何性能缺陷或显著开销?
- 将数据从 OpenCV C++传递到 NodeJS/JS |电子
- 使用自定义 nodejs 插件时的"The specified module could not be found"
- 将数据包从C++服务器发送到NodeJs服务器时出现MessagePack解码错误
- nodejs的c++插件中应有的类名
- 使用节点插件api将C库回调传递给NodeJS EventEmitter
- 通过n-api在nodejs中使用多个cpp文件
- 重新实现在nodejs中使用SHA2的旧c ++项目?
- 将 nodejs 脚本作为子进程执行(而不是从其他脚本执行)
- nodejs addon async callback with libuv
- 如何通过GDB调试nodejs addon
- NodeJS Addon从NAN AsyncWorker::Execute内部调用Javascript回调
- NodeJS Addon Unordered_map not supported?