Удаленная отладка Visual Studio 2017 Linux (gdbserver) - PullRequest
0 голосов
/ 29 июня 2018

После того, как я установил gdbserver на своей удаленной машине (Ubuntu 16.04.4 LTS), я протестировал следующий код c ++, создав в Visual Studio 2017 проект «межплатформенное консольное приложение (linux)»:

#include <cstdio>

int main()
{
    printf("hello from testLinuxDebug!\n");
    return 0;
}

Я добавил информацию о соединении (IP-адрес, идентификатор, пароль) моего компьютера с Ubuntu в диспетчер соединений и выбрал «gdbserver» для режима отладки.

Затем я начал отладку и получил следующее сообщение:

Невозможно начать отладку. Неожиданный вывод GDB из команды "-interpreter-exec console" target remote localhost63361 "". Дистанционный пульт соединение закрыто.

Сообщение после начала отладки (Изображение получено из VS2017)

Кстати, я получил следующее сообщение из окна консоли Linux меню отладки Visual Studio 2017:

Процесс /home/.../projects/testLinuxDebug/bin/x64/Debug/testLinuxDebug.out создано; pid = 29277 Прослушивание через порт 4444 Удаленная отладка с хоста 127.0.0.1 /build/gdb-9un5Xp/gdb-7.11.1/gdb/gdbserver/regcache.c:264: Обнаружена проблема> внутренняя для GDBserver. Запрошен неизвестный регистр ymm0h

Сообщение из окна консоли Linux (изображение получено из VS2017)

Может ли кто-нибудь помочь мне с этой проблемой?

1 Ответ

0 голосов
/ 20 мая 2019

У меня была точно такая же проблема на моей машине с Ubuntu 16.04.

Я просмотрел исходный код на gdbserver, и, похоже, это проблема с регистром процессора (ymm0h), который доступен только для i386 процессоров.

Дело в том, что я не знаю, как исправить gdbserver, чтобы не использовать этот регистр в частности, но вы можете устранить ошибку, обновив gdb & gdbserver до версии 8.3 в Ubuntu машина. Если мое предположение верно, то версия 8.1 была той, которая исправила эту проблему, но по умолчанию Ubuntu 16.04 имеет версию 7.11.1 для обоих gdb & gdbserver.

Вы можете запустить эти команды на компьютере с Linux, чтобы сделать это:

wget "http://ftp.gnu.org/gnu/gdb/gdb-8.3.tar.gz"
tar xzf gdb-8.3.tar.gz
cd gdb-8.3
./configure --prefix=/usr --with-system-readline
make
sudo make install

Вам может потребоваться установить дополнительные пакеты, чтобы скомпилировать gdb:

sudo apt-get install libreadline6-dev texinfo

Если у вас все еще есть проблемы с установкой GDB, попробуйте этот пример из Linux с нуля .

Удачи!

...