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

时间:2008-11-08 09:44:39

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

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

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

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

答案 2 :(得分: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 中打开可执行文件

    devenv out.exe

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