如何使用 Microsoft Visual C++ 调试器调试 MinGW EXE?
3 回答
您可以将 Visual C++ 调试器附加到系统上运行的任何进程(从 Visual C++ 菜单)。但是为了能够单步执行您的源代码,Visual C++ 必须加载符号文件(如果我没记错的话是 .pdb)并且我认为 GCC 不会生成这些文件。
存在许多 Visual Studio 扩展,例如我们:WinGDB、VisualGDB,您可以在 Web 上找到它。它允许您作为常规 Visual Studio 项目进行调试。这些项目不是免费的,但它有 30 天的完整功能试用期。它有一些限制,但已经足够好了。
问题:
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 用作独立调试器。