当前已经在 windows 上把 electron 源码弄下来了,并且也能够编译出 electron.exe 了。现在想要在 vscode 或者 visual studio 里面断点调试,这一步被卡住了。在 powershell 中运行如下命令可以编译成功:
mkdir electron
cd electron
# 拉取代码
gclient config --name "src/electron" --unmanaged https://github.com/electron/electron@v29.1.1
gclient sync --with_branch_heads --with_tags
cd src
$env:CHROMIUM_BUILDTOOLS_PATH = "$(Get-Location)\buildtools"
gn gen out/Testing --args="import(\`"//electron/build/args/testing.gn\`")"
ninja -C out/Testing electron
编译出来的二进制文件好像没办法直接调试,好像是 electron 执行后,会创建多个子进程,并且当前进程会结束掉,导致无法调试,vscode 调试配置 launch.json 如下:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(Windows) Launch",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}\\src\\out\\Testing\\electron.exe",
"args": ["demo"],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [
{ "name": "ELECTRON_ENABLE_LOGGING", "value": "true" },
{ "name": "ELECTRON_ENABLE_STACK_DUMPING", "value": "true" },
{ "name": "ELECTRON_RUN_AS_NODE", "value": "" }
],
"externalConsole": false,
"sourceFileMap": {
"o:\\": "${workspaceFolder}"
}
}
]
}
所以就想着把项目编译为 vs2022 的工程,但是在执行 gn gen 的时候就会报错,gn gen 命令如下:
gn gen out/Testing --args="import(\`"//electron/build/args/testing.gn\`")" --ide=vs2022
报错内容说不能找到文件:src/out/Testing/win_clang_x64_for_rust_host_build_tools/obj/build/rust/tests/test_rlib_crate/test_rlib_crate_associated_bin_test_rlib_crate_associated_bin_vunknown_build_script_win_clang_x64_for_rust_host_build_tools.vcxproj.filters
述求(能实现任意一个都可以):
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.