2

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

4

3 回答 3

4

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

于 2008-11-08T10:28:50.983 回答
1

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

于 2013-12-25T09:04:03.930 回答
1

问题:

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

解决方案:

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

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

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

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

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

    cv2pdb out.exe

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

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

    开发环境输出.exe

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

于 2021-04-23T14:38:32.930 回答