在远程计算机(Ubuntu 16.04.4 LTS)上安装gdbserver之后,我通过在Visual Studio 2017中创建“跨平台控制台应用程序(linux)”项目来测试以下c++代码:
#include <cstdio>
int main()
{
printf("hello from testLinuxDebug!\n");
return 0;
}
我将我的Ubuntu计算机的连接信息(IP地址,ID,密码)添加到了连接管理器,并选择了“gdbserver”作为 Debug模式。
然后,我开始调试并得到以下消息:
Message after starting to debugging (Image captured from VS2017)
顺便说一句,我从Visual Studio 2017调试菜单的Linux控制台窗口中收到以下消息:
Message from Linux Console Window (Image captured from VS2017)
有人可以帮我解决这个问题吗?
最佳答案
我在Ubuntu 16.04计算机上遇到了完全相同的问题。
我浏览了gdbserver
上的源代码,这似乎是处理器寄存器(ymm0h
)的问题,该寄存器仅适用于 i386 处理器。
问题是,我不知道如何修复gdbserver
以便不特别使用该寄存器,但是您可以通过在Ubuntu计算机上将gdb
和gdbserver
升级到8.3
版本来解决错误。如果我的猜测是正确的,那么版本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 from Scratch尝试该示例。
祝你好运!