简单地说:有没有人知道gdb的GUI可以与最新版本的Visual c++中的特性集相提并论或接近?

详细说明:作为一个在Windows上花了大量时间编程的人,每当我必须在Linux中编写c++代码时,我发现的一个较大的绊脚石是,使用命令行gdb调试任何东西所花费的时间比在Visual Studio中长几倍,而且随着练习,它似乎并没有变得更好。有些东西用图形表示更容易或更快。

具体地说,我正在寻找一个GUI:

Handles all the basics like stepping over & into code, watch variables and breakpoints Understands and can display the contents of complex & nested C++ data types Doesn't get confused by and preferably can intelligently step through templated code and data structures while displaying relevant information such as the parameter types Can handle threaded applications and switch between different threads to step through or view the state of Can handle attaching to an already-started process or reading a core dump, in addition to starting the program up in gdb

如果这样的程序不存在,那么我希望听到人们使用至少满足其中一些要点的程序的经验。 有人有什么建议吗?

编辑: 列出这些可能性很好,我也会尽我所能,但如果你能在回答中包括以下内容,那就更有帮助了: (a)你是否实际使用过这个图形用户界面,如果使用过,你对它有什么积极/消极的反馈。 (b)如果你知道,上述哪些功能是受支持的或不受支持的

列表很容易获得,像这样的网站很棒,因为你可以了解人们使用应用程序的个人体验。


当前回答

查看Eclipse CDT项目。它是一个面向C/ c++开发的Eclipse插件,包含一个功能相当丰富的调试透视图(在幕后使用GDB)。它可以在各种各样的平台上使用。

其他回答

作为一个熟悉Visual Studio的人,我已经看了几个开源IDE来取代它,KDevelop在我看来是最接近Visual c++人可以坐下来开始使用的东西。当你在调试模式下运行项目时,它使用gdb,但kdevelop几乎处理了所有事情,所以你不必知道它是gdb;您只是单步执行或将手表分配给变量。

不幸的是,它仍然不如Visual Studio调试器好。

在很大程度上,可以进行的步骤将受到g++产生的调试信息的限制。Emacs为gdb提供了一个接口,允许您通过工具栏/菜单控制它,并在单独的窗口中显示数据,也可以直接键入gdb命令。Eclipse的CDT提供了类似的工具。我听说过Anjuta和Code::Blocks,但从未使用过。

你尝试过gdb -w和cygwin gdb吗? 它应该有一个windows界面,工作得相当好。

我发现的唯一问题是,在我目前的机器上,直到安装ddd之后,它才以这种方式运行。我怀疑它需要在安装ddd时安装的tcltk。

你没有提到你使用的是Windows还是UNIX。

在UNIX系统上,KDevelop很好,但我使用KDbg,因为它易于使用,也可以用于非KDevelop开发的应用程序。

Eclipse在这两个平台上都很好。

在Windows上,有一个叫做Wascana Desktop Developer的很棒的包,它是Eclipse CDT和MinGW,它们都经过了很好的打包和预配置,使痛苦最小化。这是我发现的在Windows上开发GNU代码最好的工具。

我已经使用了所有这些调试器,没有一个像MS Dev Studio一样好。Eclipse/Wascana可能是最接近的,但它确实有局限性,比如不能进入dll,而且它在检查变量方面做得不太好。

Eclipse CDT将提供与使用Visual Studio相当的体验。我每天都使用Eclipse CDT来编写代码和调试本地和远程进程。

如果您不熟悉使用基于Eclipse的IDE,那么GUI将需要一点时间来适应。然而,一旦您理解了Eclipse特有的GUI思想(例如透视图),使用该工具就会成为一种很好的体验。

CDT工具提供了一个不错的C/ c++索引器,允许您快速查找代码库中方法的引用。它还提供了一个很好的宏扩展工具和有限的重构支持。

关于对调试的支持,CDT能够做列表中的所有事情,除了读取核心转储(它可能支持这个功能,但我从未尝试使用过这个功能)。而且,我使用模板调试代码的经验有限,所以我不确定CDT在这方面能提供什么样的经验。

有关使用Eclipse CDT进行调试的更多信息,您可能需要查看以下指南:

与CDT调试器的接口,第2部分:使用Eclipse CDT和MI访问gdb CDT调试教程