# ** Electron 调试node_internal代码
通常意义上,我们想要调试Electron
的JS代码确实不太容易,以electron-quick-start
为例,在VSCode中按下F10
断下代码的位置,顶多就是Electron的init.js
;node初始化过程在我们按下开始调试的按钮时,就已经跳过了。那我们想要调试node初始化流程,那要咋整?
electron_node
的代码,因此需要重新编译electron
;src\third_party\electron_node\src\node_options.h
中修改DebugOptions
结构体的值,如下: // --inspect
bool inspector_enabled = true; // 生产环境中可以关闭这个选项。
// --debug
bool deprecated_debug = false;
// --inspect-brk
bool break_first_line = true;
// --inspect-brk-node
bool break_node_first_line = true;
--inspect-brk-node
来开启,但实际上在6.1.12
中,传递该参数无效。更新的版本不知道该问题是否已经修复。附加调试选项
:{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}",
"name": "Attach to Main Process",
"port": 9229,
"remoteRoot": "Absolute path to the remote directory containing the program",
"request": "attach",
"skipFiles": [],
"type": "pwa-node"
},
skipFiles
字段中不能忽略node_internal
相关的东西;不然相关断点即便命中了也会被立马恢复。electron
主程序;因为第一步中相关设置已经修改生效,electron会等待调试器链接;