如何调试一个 nodejs addon
修改 building.gyp
在 conditions
中添加一下编译指令:
- "Optimization": "0": 禁用编译优化
- "DebugInformationFormat": "3": 生成调试符号表
"conditions": [
[
"OS=='win'", {
"msvs_settings": {
"VCLinkerTool": {
"VCCLCompilerTool": {
"Optimization": "0",
"DebugInformationFormat": "3"
},
"AdditionalLibraryDirectories": [
...
],
}
}
}
]
]
修改 js 文件
在 js 中加载 *.node 的文件添加断点,以便我们能使用 vs 来 attach 到 electron
进程
const addon = require((0, path_1.join)(__dirname, "..", "build", "debug", "xxx.node"));
这里需要注意:
通常我们的 *.node 文件通常是
build/Release/xxx.node
,但是在 debug 环境下,它的目录是
build/debug/xxx.node
.
使用 vs 挂载到相应的 electron
进程
运行你的 electron 程序,当js代码中的断点被触发后, 使用 vs 挂载到相应的 electron 进程便可以开始调试了。