标题
我正在写一个Node.Js C++插件,当我试着通过在互联网上搜索的方式来调试我的c++插件时,它根本就不能工作。
我从互联网上得到的是gdb节点集args app.js运行
I get this /usr/local/bin/node":not in executable format:文件格式无法识别
在类型file /usr/local/bin/node之后
我得到了这个/usr/local/bin/node:具有2个架构的Mach-O通用二进制文件/usr/local/bin/node (对于架构i386):Mach-O可执行i386 /usr/local/bin/node (对于架构x86_64):Mach-O 64位可执行x86_64
我不知道为什么我的gdb告诉我节点不是可执行格式。
发布于 2015-06-07 22:08:19
您构建的node.js是否启用了调试功能?看起来您是在mac上,如果您使用的是自制软件安装模式,请尝试以下操作:
brew install nodejs --with-debug然后尝试:
gdb --args /usr/local/bin/node app.js此外,mac上的gdb已被弃用,取而代之的是lldb,因此您也可以尝试lldb:
lldb -- /usr/local/bin/node app.js发布于 2018-07-04 22:30:36
如果你是一个VSCode用户,你可能会发现这很有帮助。
基本步骤如下:
为您的launch.json安装vscode插件
{ "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-27e9940fc3ad
发布于 2021-02-19 07:37:19
这对我很有效:
1.)删除.vscode/launch.json文件
2.)转到VSCode的Run选项卡,它现在会给你一个链接,名为"create a launch.json file“。点击它并选择"C++ (GDB/LLDB)“。
3.)现在按照Atul在他的回答中所描述的那样编辑"program“和"args”。生成的launch.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不再工作,也不再需要。
https://stackoverflow.com/questions/22324833
复制相似问题