【问题标题】:How can I debug a MinGW EXE with the Microsoft Visual C++ debugger?如何使用 Microsoft Visual C++ 调试器调试 MinGW EXE?
【发布时间】:2008-11-08 09:44:38
【问题描述】:

如何使用 Microsoft Visual C++ 调试器调试 MinGW EXE?

【问题讨论】:

    标签: c++ visual-c++ debugging mingw


    【解决方案1】:

    您可以将 Visual C++ 调试器附加到系统上运行的任何进程(从 Visual C++ 菜单)。但是为了能够单步执行您的源代码,Visual C++ 必须加载符号文件(如果我没记错的话是 .pdb),我认为 GCC 不会生成这些文件。

    【讨论】:

      【解决方案2】:

      存在许多 Visual Studio 扩展,例如我们:WinGDB、VisualGDB,您可以在 Web 上找到它。它允许您作为常规 Visual Studio 项目进行调试。这些项目不是免费的,但它有 30 天的完整功能试用期。它有一些限制,但已经足够了。

      【讨论】:

        【解决方案3】:

        问题:

        GCC 编译器(即 MinGW 的 gcc)生成带有“-g”标志的调试信息。调试信息嵌入到生成的可执行文件中。另一方面,Windows 的编译器使用一种特殊的“.pdb”格式来存储调试信息。例如,Microsoft Visual Studio 的调试器不仅需要可执行文件 (.exe),还需要其调试信息 (.pdb) 可用。

        解决方案:

        有一个小程序可以从用 gcc 编译的可执行文件中提取 .pdb 文件。 它被称为 cv2pdb,可在 https://github.com/rainers/cv2pdb 获得。

        • 下载cv2pdbhttps://github.com/rainers/cv2pdb

        • 将 cv2pdb.exe 放在路径中的某个位置,可能是自定义 bin 文件夹,以便可以通过命令行访问它。

        • 使用 MinGW 的 gcc 编译器像往常一样编译您的文件,并带有“-g”标志,以便包含调试信息。

        • 只需在您的可执行文件上运行 cv2pdb.exe。

          cv2pdb out.exe

          这将在同一目录中生成一个 out.pdb 文件。

        • (如果您安装了 Microsoft Visual Studio)直接在 Microsoft Visual Studio 中打开可执行文件

          devenv out.exe

        注意:此命令只是在 Microsoft Visual Studio 中打开可执行文件,而不为它创建项目。实际上,您可以使用任何文本编辑器 + 构建系统来构建可执行文件,然后仅将 Visual Studio 用作独立调试器。

        【讨论】:

          猜你喜欢
          • 2011-06-07
          • 2019-07-16
          • 1970-01-01
          • 2011-08-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-04
          相关资源
          最近更新 更多