如何通过GDB调试nodejs addon

How to debug nodejs addon by gdb

本文关键字:nodejs addon 调试 GDB 何通过      更新时间:2023-10-16

标题

我正在编写一个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用户,则可能会发现这个有用。

基本步骤是:

  1. 安装VSCODE插件https://github.com/vadimcn/vscode-lldb

  2. 设置您的启动。

{ "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不再工作,不需要。