c++ - 在基于 Makefile 的解决方案中使用 Visual Studio 调试器

标签 c++ visual-studio debugging makefile virtualbox

我有一个巨大的基于 Makefile 的项目(实际上是 VirtualBox OSE ),很多可执行文件、静态和动态库(假设有一段时间没有驱动程序)。实际问题是调试。

我对 WinDbg 的了解足以做到这一点,但每个人都知道它不如 VS 调试器用户友好和方便。此外,使用了 Microsoft C++ 编译器,据我所知,我拥有调试、源代码、发布配置中的二进制文件、pdb 文件和 Visual Studio 安装所需的一切(它需要 VS 2010,不幸的是无法升级)。有什么方法可以使用 Visual Studio 进行调试并使用其 IDE 和调试器的所有功能?

手动转换根本不是一种选择,它有超过 400 Mb 的源和数百个目标。

最佳答案

以下可能有效,没有任何保证。

这假设您已经使用正确的调试标志构建了可执行文件:/ZI 至少,/Zi 将使您的生活更容易进行热修补在调试的时候。以及链接器的适当 /DEBUG 选项。

在要运行可执行文件的文件夹中打开命令提示符,然后键入

<Path to Visual Studio.exe> <Path to your executable>

例如,对于我正在调试的应用程序:

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.exe" sspf.exe

这将打开 visual studio,如果您按 F-10,它将进入您的程序,您应该会看到源代码。

如果可行,您就可以开始了。它会询问您是否要在退出时保存 .sln 文件,是否保存由您决定。如果不这样做,则每次启动新的调试 session 时都需要明确命名可执行文件,如果这样做,您将有一个或多个额外的文件使您的工作区变得杂乱无章,但这样做的好处是双击.sln 文件将使您立即返回调试 session 。

对于你的情况,这完全不是问题,但值得注意的是,这样做创建的 .sln 文件仅对调试程序有用,不能使用构建它。

关于c++ - 在基于 Makefile 的解决方案中使用 Visual Studio 调试器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51454915/

相关文章:

python - 在 Python 中以图形方式显示对象和引用

python - ImportError : libboost_iostreams. so.1.61.0: 无法打开共享对象文件: 没有这样的文件或目录

c++ - 使用 GLFW 在 MacOS 上设置 OpenGL 3.2+

c++ - 删除指针指向的结构中数据的正确用法

sql - 将 SQL Server Express 数据库导出到 .SDF 文件(本地数据库)

ruby-on-rails - 为什么我的 rails if/else 得到 NoMethodError

c++ - 谷歌测试使用

c - 如何将元数据添加到 Visual Studio C/C++ 项目

c++ - Visual Studio 功能 - 注释代码 Ctrl K - Ctrl C

javascript - Chart.JS 自定义 - 如何调试?