Узел Visual Studio: отладка в рабочих потоках (узел 11) - PullRequest
0 голосов
/ 18 января 2019

Можно ли сделать отладчик Javascript VS Code для отладки новых "рабочих потоков" узла 11? Рабочие потоки моделируются после веб-работников с небольшим количеством дополнительных возможностей в верхней части и доступны из нового пакета worker_threads (см. https://nodejs.org/api/worker_threads.html). Кроме подпроцессов узла, можно разделить память с рабочими потоками в виде SharedArrayBuffers .

Моя конфигурация запуска VS Code выглядит следующим образом:

   {
        "type": "node",
        "request": "launch",
        "name": "Mocha Tests",
        "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
        "runtimeArgs": [
            "--experimental-wasm-threads",
            "--experimental-worker"
        ],
        "args": [
            "-u", "tdd",
            "--timeout", "100000",
            "--colors", "${workspaceFolder}/test"
        ],
        "internalConsoleOptions": "openOnSessionStart",
        "autoAttachChildProcesses": true
   }

Я могу выполнить отладку в сценарии основного узла, но флаг "autoAttachChildProcesses" не эффективен при присоединении к порожденным рабочим потокам, и при этом не добавляется оператор "отладчик" в коде, который выполняется внутри рабочего потока.

Они упоминают, что пакет "инспектор" еще не поддерживается для рабочих потоков в их справочной документации, поэтому я думаю, это может объяснить, почему это так.

Несмотря на все эти шансы, кому-нибудь еще удалось отладить рабочие потоки внутри кода VS?

1 Ответ

0 голосов
/ 29 марта 2019

Отказ от ответственности : Ответ ниже описывает мой опыт отладки рабочих потоков, но без использования кода VS, который был первоначальным вопросом. Я подумал, что в любом случае было бы полезно узнать альтернативные варианты, поскольку кажется, что на сегодняшний день единственным вариантом для отладки рабочих потоков является Webstorm .

.

Опция веб-шторма

Можно отлаживать рабочие потоки с помощью Webstorm: https://blog.jetbrains.com/webstorm/2018/10/webstorm-2018-3-eap-6/ Я попробовал это, и это работает очень хорошо (как задокументировано в ссылке выше).

Хромированные инструменты

Я пробовал отлаживать рабочие потоки с помощью инструментов разработчика Chrome, следуя тому же подходу, при котором вы отлаживали веб-работников, но он не работал. При отладке веб-работников они отображаются так в Chrome Tools

enter image description here

К сожалению, рабочих потоков нет. Когда рабочий поток выполняется, отладчик не показывает его и не позволяет ни ставить точки останова, ни проходить через код. Я подозреваю, что это может быть из-за этого: https://github.com/nodejs/node/issues/26609

VS Код

VSC не имеет функции для отладки рабочих потоков. Интересно, что VCS также не имеет функции для отладки веб-работников. Это явное решение с их стороны: https://github.com/Microsoft/vscode-chrome-debug/issues/675

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...