将 gdb 添加到 MinGW
Posted
技术标签:
【中文标题】将 gdb 添加到 MinGW【英文标题】:Adding gdb to MinGW 【发布时间】:2008-10-04 10:35:46 【问题描述】:我去了http://sourceforge.net/project/showfiles.php?group_id=2435,下载了适用于 MinGW 5.1.4 的自动化 MinGW 安装程序,同时下载了 GNU 源代码级调试器候选版本:GDB 6.8-3。然后我将 MinGW 基础工具安装到 C:\MinGW。目前没问题。
但是,当我开始安装 gdb 调试器时,它有很多文件和文件夹,它们与已安装的一些文件和文件夹同名,但文件与已安装的文件不同。例如 C:\MinGW\include\bfd.h 是 171 KB,但 gdb-6.8-mingw-3\include\bfd.h 是 184 KB。
如何在不破坏已安装内容的情况下?
【问题讨论】:
我有 Mingw 版本 0.6.2-beta 和 gdb。 【参考方案1】:在命令提示符下,我浏览到 C:\MinGW\bin 并运行:
mingw-get.exe install gdb
这为我解决了问题。不确定这是否重要,但我的路径中有 C:\MinGW\bin(我想我可能不需要浏览到 C:\MinGW\bin)。
【讨论】:
【参考方案2】:project files page 上的 当前版本 (5.2.1) 版本的 gdb 一直对我有用。下载的是独立的.exe,不需要其他任何东西。
但我敢打赌 6.8 包中的 .exe 也可以工作。我会尝试只使用 .exe,然后如果有问题,请尝试从 6.8 包中提取其他文件。 (尽管这可能会导致 MinGW 安装的其余部分出现问题。)
更新:似乎有一个 7.something 版本。我还没有彻底测试它,但它似乎可以工作,即使使用 gcc 3。
【讨论】:
使用 5.2.1 谢谢!【参考方案3】:获取Wascana Desktop Developer。它将MinGW、gcc、Eclipse和gdb合二为一。
【讨论】:
【参考方案4】:您可以使用 gdb tarball 中的(较新的)文件安全地覆盖使用 MinGW 预打包的文件。您也可以选择不覆盖它们 - 只需确保选择任意一组,即避免混合旧包和新包中的文件。
无论如何,大多数有问题的文件可能与您并不真正相关。例如,属于 libbfd 库的文件不是 gdb 日常操作所必需的,如果您想扩展调试器或自己编写调试工具,则使用它们。
无论如何,在解压新版本之前备份 mingw 目录。这很容易,因为 MinGW 在该目录中是自包含的。这样,如果出现任何故障,您只需删除目录并从备份中恢复即可。
【讨论】:
【参考方案5】:一般在windows下安装gdb,有两种安装方式:
1) 使用由某些提供商从 GNU gdb 构建和编译的现成二进制文件(易于安装)
使用从以下 URL 提供的 TDM-GCC 二进制文件,其中包括 gcc 编译器和 gdb 调试器。 http://tdm-gcc.tdragon.net/ 使用已在其中编译和构建 GNU GDB 的 Equation 包。 http://www.equation.com/servlet/equation.cmd?fa=gdb2) 使用最小的 mingw 或 cygwin 包,然后在其中安装 gdb。
安装已经提供 GDB 的 mingw 或 cygwin打开 cygwin 或 mingw 终端,只需键入以下内容以确保它已安装
$ gdb --version
-
提示:如果您没有找到 gdb 安装,只需打开 cygwin 或 mingw 软件包安装程序并确保您已检查 gdb
提示:获取和安装OHRRPGCE 的调试版本可提供有关崩溃的有用信息。
参考号:http://rpg.hamsterrepublic.com/ohrrpgce/GDB_on_Windows
【讨论】:
【参考方案6】:TDM GCC/MinGW32 builds 安装程序包括 gdb。它是 gcc 4.4.x,包含基本 Windows 开发所需的所有核心二进制包,并且被广泛使用,没有任何异常问题。
【讨论】:
以上是关于将 gdb 添加到 MinGW的主要内容,如果未能解决你的问题,请参考以下文章
尝试将 /proc/kallsyms 添加到 gdb 以进行 vmlinux 调试:`/proc/kallsyms':无法读取符号:文件格式无法识别
将 Winsock2 添加到我的 MinGW-w64 C/C++ 会导致:未定义对“InitializeConditionVariable”的引用