Рабочая VS C Запустить конфигурацию для процесса рендерера? (проблема «точка останова установлена, но не связана») - PullRequest
0 голосов
/ 07 марта 2020

VS C: 1.42.1
Электрон: 8.0.3
macOS: 10.14.5
узел: 11.15.0

Вот один из множества примеров конфигураций запуска, которые я пробовал. Я могу успешно отладить процесс main, но у процесса renderer есть проблема «точка останова установлена, но не связана», поэтому точки останова никогда не срабатывают.

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug Main Process",
      "type": "node",
      "request": "launch",
      "cwd": "${workspaceRoot}",
      "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron",
      "windows": {
        "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd"
      },
      "program": "${workspaceRoot}/main.js",
      "protocol": "inspector"
    },
    {
      "name": "Debug Renderer Process",
      "type": "chrome",
      "request": "launch",
      "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron",
      "windows": {
        "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd"
      },
      "runtimeArgs": [
        "${workspaceRoot}/main.js",
        "--remote-debugging-port=9222"
      ],
      "webRoot": "${workspaceRoot}"
    }
  ]
}

Также попробовал этот пример от Microsoft "vscode-recipes" - с тем же результатом, что и выше: "точка останова установлена, но не связана" в процессе визуализации.

{
      "version": "0.2.0",
      "configurations": [
          {
              "type": "node",
              "request": "launch",
              "name": "Electron: Main",
              "protocol": "inspector",
              "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
              "runtimeArgs": [
                  "--remote-debugging-port=9223",
                  "."
              ],
              "windows": {
                  "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"
              }
          },
          {
              "name": "Electron: Renderer",
              "type": "chrome",
              "request": "attach",
              "port": 9223,
              "webRoot": "${workspaceFolder}",
              "timeout": 30000
          }
      ],
      "compounds": [
          {
              "name": "Electron: All",
              "configurations": [
                  "Electron: Main",
                  "Electron: Renderer"
              ]
          }
      ]
  }

Я боролся в течение нескольких месяцев с проблемой «точка останова установлена, но не связана» при попытке отладки процесса renderer в Electron. Я потрачу несколько часов на поиски, пробуя примеры конфигураций запуска, пробуя различные предложения (например, Конфигурация отладки основного процесса и процесса рендеринга ), а затем сдаюсь, до следующего раза. , ,

Это работало в VS C 5 или 6 версиях go, а затем сломалось. Я был на всех страницах VS C github, "выдает" и ничего не работает. Я могу отладить процесс main.

Структура моего проекта показана ниже. Я не использую webpack, angular, react или другие подобные фреймворки.

У кого-нибудь есть конфигурация запуска, которая работает с такой настройкой? "console.log ()" становится очень старым. , .

enter image description here

1 Ответ

0 голосов
/ 12 марта 2020

Я в основном точно использую ваш второй запуск. json из рецептов vscode. Теперь я вспоминаю похожие проблемы, и эти две вещи сработали:

  1. Запустите рендерер с помощью devtools, а затем Ctrl + R внутри devtools, чтобы обновить sh, чтобы точки останова начали работать. (хотя это перезапустит скрипт в рендере, что может привести к неожиданным эффектам)
  2. Запустите ваше приложение, используя конфигурацию «Электрон: Главная». Когда ваше приложение запустится, переключитесь на опцию «Electron: Renderer», щелкните треугольник и в раскрывающемся списке, который должен появиться в середине VSCode, выберите тот, в котором указано имя вашего приложения. Тогда точки останова должны работать.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...