在基于 Makefile 的解决方案中使用 Visual Studio 调试器
Posted
技术标签:
【中文标题】在基于 Makefile 的解决方案中使用 Visual Studio 调试器【英文标题】:Use Visual Studio debugger in Makefile-based solution 【发布时间】:2018-07-21 09:56:19 【问题描述】:我有一个巨大的基于 Makefile 的项目(实际上是 VirtualBox OSE),许多可执行文件、静态和动态库(假设暂时没有驱动程序)。实际问题是调试。
我知道 WinDbg 足以做到这一点,但每个人都知道它不如 VS 调试器那么用户友好和方便。此外,使用了 Microsoft C++ 编译器,据我了解,我拥有调试所需的一切、源代码、发布配置中的二进制文件、pdb 文件和 Visual Studio 安装(它需要 VS 2010,不幸的是无法升级)。有什么方法可以使用 Visual Studio 进行调试并使用其 IDE 和调试器的所有功能?
手动转换根本不是一种选择,它有超过 400 Mb 的源和数百个目标。
【问题讨论】:
您知道可以将 VS 调试器附加到正在运行的进程吗? MSDN: Attach to Running Processes with the Visual Studio Debugger。我不时使用它,但从来没有使用不是用 VS 解决方案构建的程序。另一方面,我不知道为什么它不应该工作。 【参考方案1】:以下可能有效,没有承诺。
这假设您已经使用正确的调试标志构建了可执行文件:至少/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
文件,是否要保存取决于您。如果不这样做,则每次启动新的调试会话时都需要显式命名可执行文件,如果这样做,您将有一个或多个额外的文件使您的工作区混乱,但具有双击的优势.sln
文件将让您立即回到调试会话。
对于您的情况,这完全不是问题,但值得注意的是,这样做创建的.sln
文件仅对调试程序有用,不能用于构建程序。
【讨论】:
最后我设法在调试器中启动它。有并发症,但总的来说你是对的。暂时唯一的问题是 Win32 GUI 应用程序像控制台应用程序一样启动 最后一个问题在我这边没有任何努力就解决了,只是重新启动了调试器。 VirtualBox 是一个项目,其工作有时依赖于天空中的星星定位以上是关于在基于 Makefile 的解决方案中使用 Visual Studio 调试器的主要内容,如果未能解决你的问题,请参考以下文章
面临启用导航按钮和使用 vis.js 在时间线图中获取数据的问题