首页 > 解决方案 > 为什么带有远程 gdb 的 Visual Studio 无法在库(Linux MSBuild 项目)上设置断点?

问题描述

我创建了一个 Linux MSBuild 项目(称为program),以便从 Visual Studio 解决方案在 Linux 系统上进行远程编译。此项目使用一个静态库(称为library),该库也是使用 Linux MSBuild Visual Studio 项目编译的。

程序编译良好,我能够运行程序并在程序的任何源文件中设置断点。 可以在程序的 main.cpp 文件中设置断点...但是当我引用属于library 的源文件时无法设置断点。库源代码可在远程计算机上编译库的位置获得。

...但它在库的任何文件中都失败了

如果我使用 gdb 直接在 linux 系统上运行程序并在属于的源中设置断点,则它可以正常工作。所以我想这是由于 Visual Studio。

我尝试使用“属性”>“调试”中的“附加源文件映射路径” 。我不确定它的真正工作方式以及确切的参数应该是什么。库调试信息对位于 /home/linux/SDK/...source.cpp 的文件进行了一些引用,因此我定义了这些源文件在 Windows 计算机上的位置,如捕获中所示。无论我尝试什么,打破仍然失败。

添加匹配的路径图

我在 Visual Studio 2017 和 2019 上都进行了尝试,但在两个版本上都失败了,当我们将断点放在 Visual Studio IDE 中时,我发现无法显示发送到 gdb 的命令。我觉得知道发送的内容将有助于解决问题。

谢谢你的帮助!

标签: c++linuxvisual-studiomsbuildremote-debugging

解决方案


推荐阅读