无法从 Visual Studio 启动 gdb 以在 Windows 上的 Linux 子系统中远程调试 Linux C++ 项目

Posted

技术标签:

【中文标题】无法从 Visual Studio 启动 gdb 以在 Windows 上的 Linux 子系统中远程调试 Linux C++ 项目【英文标题】:Could not launch gdb from Visual Studio for remote debugging Linux C++ project in Linux subsystem on Windows 【发布时间】:2018-06-17 16:57:44 【问题描述】:

我正在尝试Targeting the Windows Subsystem for Linux from Visual Studio。该项目在 Visual Studio 中构建良好:

1>------ Rebuild All started: Project: LinuxConsoleApp, Configuration: Debug x64 ------
1>Cleaning remote project directory
1>Validating architecture
1>Validating sources
1>Copying sources remotely to 'localhost'
1>Starting remote build
1>Compiling sources:
1>main.cpp
1>Linking objects
1>LinuxConsoleApp.vcxproj -> C:\...\LinuxConsoleApp\bin\x64\Debug\LinuxConsoleApp.out
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

我可以从 Windows 上的 bash 命令行提示符运行它:

linux@windows-bash:/mnt/c/.../LinuxConsoleApp/bin/x64/Debug$ ./LinuxConsoleApp.out
hello from LinuxConsoleApp!

但是,当我设置断点从 Visual Studio 调试它时,出现错误:

“无法启动 gdb。gdb 从您的系统中丢失,需要 已安装,请使用系统的包管理器安装”

我确实在 Windows 的 Linux 子系统上安装了 gdbserver。有谁知道我还需要什么才能使它工作?提前致谢!

【问题讨论】:

启动SSH服务,不要关闭CMD窗口。 【参考方案1】:

首先,您是否在 WSL 上安装了gdb?命令gdb --version 显示什么?

那建议你在gdb模式下调试,see this topic for details。

而且,如果您阅读了 original Visual Studio blog 中有关使用 WSL 的 cmets,您会发现 ssh 周围存在一些问题,如果您遵循这些问题,则会将您带到 this fix

【讨论】:

是的,运行 'sudo apt-get install gdb' 在 WSL 上安装 gdb 可以修复它。谢谢你的好回复!

以上是关于无法从 Visual Studio 启动 gdb 以在 Windows 上的 Linux 子系统中远程调试 Linux C++ 项目的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin - Android - Visual Studio - 应用程序无法启动

使用 CMake 生成 Visual Studio 2015 Makefile Project (GDB)

Visual Studio Code 的 launch.json 解析

visual studio下工程启动失败,提示无法启动程序,系统找不到指定的文件

visual studio下工程启动失败,提示无法启动程序,系统找不到指定的文件

Visual Studio 错误:由于出现错误,无法启动 Visual Studio:System.NullReferenceException