codecamp

Electron 使用 VsCode 调试

本指南将介绍如何使用 VSCode debugging 为您自己的 Electron 项目和 native Electron 代码库(Electron codebase)调试。

调试您的 Electron 应用

主进程

1. 在 VSCode 中打开一个 Electron 项目。

$ git clone git@github.com:electron/electron-quick-start.git
$ code electron-quick-start

2. 添加文件 .vscode/launch.json,内容为

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug Main Process",
      "type": "node",
      "request": "launch",
      "cwd": "${workspaceFolder}",
      "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
      "windows": {
        "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"
      },
      "args" : ["."]
    }
  ]
}

3. 调试

在 main.js 中设置一些断点,并在 调试视图 中开始调试. 您应该能够点击断点。

这是一个预先配置好了的项目,你可以下载并直接在 VSCode 中调试:https://github.com/octref/vscode-electron-debug/tree/master/electron-quick-start

调试 Electron 代码库(Electron codebase)

如果您想从源代码构建 Electron 并修改 native Electron 代码库,本节将帮助您测试您的修改。

对于那些不确定在哪里获得代码或如何构建它, Electron 的构建工具 自动化并解释此过程的大部分。

Windows (C++)

1. 在 VSCode 中打开一个 Electron 项目。

$ git clone git@github.com:electron/electron-quick-start.git
$ code electron-quick-start

2. 添加文件 .vscode/launch.json,内容为

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "(Windows) Launch",
      "type": "cppvsdbg",
      "request": "launch",
      "program": "${workspaceFolder}\\out\\your-executable-location\\electron.exe",
      "args": ["your-electron-project-path"],
      "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}",
      },
    },
  ]
}

配置说明

  • cppvsdbg 需要启用 内置的 C/C++ 扩展
  • ${workspaceFolder} 是 Chromium 的 的完整路径。
  • your-executable-location 将是以下几项之一:
    • Testing:如果您使用的是默认的 Electron 构建工具 设置,或默认的 从源端构建 的设置。
    • Release:如果你构建了一个发布版本,而不是测试版本。
    • your-directory-name:如果你在构建过程中修改, 这将是你指定的。
  • args 数组字符串 "your electron-project-path" 应为您正在用于测试的 Electron 项目或 main.js 的绝对路径。 在本示例中,它应该是您的 electron-quick-start 的路径。

3. 调试

在你选择的原始 Electron C++ 代码中的 .cc 文件中设置一些断点,并在 Debug View 中开始调试。


Electron 调试主进程
Electron 交互式解释器(REPL)
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }