Visual Studio 2019 Удаленная отладка GDB на устройстве ARM, отличном от POSIX - PullRequest
0 голосов
/ 01 августа 2020

Я установил Visual Studio 2019 и пытаюсь настроить среду разработки, которая позволяет мне выполнять кросс-компиляцию для ARM11 на WSL, развертывать ее на моем устройстве и подключать отладчик Visual Studio к настраиваемому серверу gdb, который работает на устройство. В большинстве упоминаний об удаленной отладке с помощью GDB с использованием Visual Studio в первую очередь упоминается использование SSHing в машине. Устройство, на котором я пытаюсь отлаживать удаленно, не является POSIX и не имеет оболочки для S SH, только встроенный сервер GDB на порту 4000.

Я знаю, что это работает, потому что с использованием WSL, следующие работы:

$ gdb-multiarch application.elf
GNU gdb (Ubuntu 8.1-0ubuntu3.2) 8.1.0.20180409-git
<GNU Licensing crap>
Reading symbols from application.elf...done.
(gdb) target remote 192.168.43.121:4000
Remote debugging using 192.168.43.121:4000
warning: Target description specified unknown osabi "3DS"
svcWaitSynchronization () at /home/fincs/pacman-packages/libctru/src/libctru-2.0.0/libctru/source/svc.s:263
263     /home/fincs/pacman-packages/libctru/src/libctru-2.0.0/libctru/source/svc.s: No such file or directory.
(gdb) cont
Continuing.
Start calloc test... micros elapsed: 1.592000 <-- from device's stderr

Зная, что это работает отлично, я хотел попробовать работать с этой вводной Visual Studio, потому что мне очень нравятся возможности отладки IDE. Основываясь на их описании возможности VS взаимодействовать с GDB, я решил, что на моем 2DS должна быть возможность подключиться к серверу отладки. Однако все, что мне удалось выяснить и попробовать, - это добавить соединение без аутентификации в диспетчер соединений Visual Studio, и, возможно, я смогу включить его в задачу отладки оттуда, но вот что происходит, когда я пытаюсь:

Попытка подключения отладчика с сообщением об ошибке

Итак, я останавливаюсь на этом. Я не знаю, что еще попробовать. Я также не думаю, что это последний барьер, потому что две другие вещи на самом деле не совпадают с процессом gdb-multiarch, с которым я работаю через WSL, а именно:

  1. Я не Я не вижу способа указать Visual Studio, какой файл символов использовать, как я делаю для GDB (application.elf). Я полагаю, что, возможно, они все равно будут у него из-за того, что он является IDE.
  2. Поскольку я отлаживаю с машины x86, я не уверен, сможет ли Visual Studio понять сервер ARM11 gdb. Вот почему я использую gdb-multiarch при использовании WSL. Использование gdb по умолчанию не дает результатов.

Как я могу двигаться дальше, чтобы Visual Studio могла нормально работать с этим сервером gdb ARM11 без авторизации?

...