是否有一个用于Linux的C ++ gdb GUI?

简而言之:有没有人知道gdb的graphics用户界面(GUI)可以使它与标准的或者接近Visual C ++最新版本的function集相媲美呢?

详细地说:作为在Windows中花费大量时间进行编程的人,无论何时需要在Linux中编写C ++代码,我发现的一个较大的绊脚石是,使用命令行gdbdebugging任何东西都要花费我几倍的时间Visual Studio,而且它在实践中似乎并没有越来越好。 有些事情是更容易或更快来graphics表示。

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

  • 处理所有的基础知识,如跨越代码,观察variables和断点
  • 了解并可以显示复杂嵌套的C ++数据types的内容
  • 在显示相关信息(如参数types)的同时,不会混淆,最好能够智能地浏览模板化的代码和数据结构
  • 可以处理线程应用程序,并在不同的线程之间切换以查看或查看状态
  • 可以处理附加到已经启动的进程或读取核心转储,除了在gdb中启动程序

如果这样的计划不存在,那么我想听听人们对至less满足一些要点的计划的经验。 有没有人有任何build议?

编辑:
列出可能性非常好,我会尽我所能,但是如果你能够在你的回答中join,这将会更有帮助:
(a)您是否真的使用了这个GUI,如果是这样的话,您有什么正面/负面的反馈。
(b)如果您知道,上述哪些function不受支持

列表很容易得到,像这样的网站是伟大的,因为你可以得到一个人的应用程序的个人经验的想法。

你不会发现覆盖GDB的东西 ,它可以与Visual Studiodebugging器的原始力量相抗衡。 它太强大了,它在IDE中集成得太好了。

对于Linux的替代品,如果免费软件是你的事情,那么试试DDD。

Eclipse CDT将提供与使用Visual Studio相媲美的体验。 我每天使用Eclipse CDT编写代码和debugging本地和远程进程。

如果你不熟悉使用基于Eclipse的IDE,那么GUI将会习惯一些。 但是,一旦您了解了Eclipse独有的GUI思想(例如透视图),使用该工具就变成了一个不错的体验。

CDT工具提供了一个体面的C / C ++索引器,使您能够快速find您的代码库中的方法的引用。 它还提供了一个很好的macros扩展工具和有限的重构支持。

关于支持debugging,除了读取核心转储(它可能支持这一点,但我从来没有试图使用这个function),CDT能够完成你列表中的所有事情。 另外,我使用模板debugging代码的经验是有限的,所以我不确定CDT在这方面会提供什么样的体验。

有关使用Eclipse CDT进行debugging的更多信息,您可能需要查看这些指南:

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

gdb-tui工作正常,如果你想要一些graphics用户界面,但仍然基于字符。

检查一下Nemiver C / C ++debugging器 。 在Ubuntu(开发工具/debugging)中安装很容易。

更新:新链接。

我厌恶Windows开发的想法,但VC ++debugging器是我见过的最好的。 我还没有find一个接近VC的GUI前端。

一旦你真正适应了GDB,GDB是非常棒的。 愤怒地使用它,你会变得非常精通。 我可以围绕一个程序,不费吹灰之力地完成你列出的所有事情。 在我精通之前,通过SSH连接到远程服务器确实花了一个月左右的时间。 我永远不会回去。

DDD确实很强大,但是却是很麻烦的。 当我从GDB那里得到消息时,我发现它经常冻结。 这很好,因为它有一个gdb接口窗口,所以你可以看到发生了什么事情,并直接与gdb进行交互。 在我的环境中,DDD不能在远程X会话中使用(由于某些原因,我正坐在瘦客户机上,这是一个真正的问题),所以对我来说是这样。

KDevelop遵循典型的KDE风格,并将一切暴露给用户。 我也从来没有运气在Kdevelop中debugging非KDevelop程序。

Gnat编程工作室(Gnat Programming Studio,GPS)实际上是GDB的一个很好的前端。 它不只是pipe理Ada项目,所以如果你需要一个debugging器,那么值得一试。

你可以使用Eclipse,但是它非常重,很多经验丰富的Unix人(包括我在内)都不太关心它的接口,这不仅仅是STFU,而且也不适合你。 Eclipse也似乎占用了很多空间,像狗一样运行。

Qt创造者似乎是好东西。 一位同事向我展示了一种debugging方法:

  • 创build一个新的项目,“基于Makefile的项目导入”。
  • 把它指向你的根项目文件夹(它将索引下的源代码,它是非常快)。
  • 转到项目设置并添加运行configuration,然后指定要debugging的可执行文件及其参数。
  • Qt Creator似乎坚持在debugging之前构build您的项目。 如果你不想要,或者不使用make,你可以重写make命令。 我改成了“真”。 🙂

这对于debugging我已经编译的应用程序看起来可能有点多,但这是值得的。 debugging器以与Visual Studio类似的方式显示线程,堆栈和局部variables,甚至使用许多相同的键盘快捷键。 它似乎很好地处理模板,至lessstd :: string和std :: map。 附加到现有的进程和核心转储似乎是支持的,虽然我还没有testing过。

请记住,我用了不到一小时的时间,但我留下了深刻的印象。

我使用cgdb,简单而有用

我使用DDD很多,一旦你学会使用它,它是非常强大的。 我要说的一件事就是不要在X上通过WAN使用它,因为它似乎做了大量不必要的屏幕更新。

另外,如果你没有和GDB配对,也不介意掏钱,那么我会试试TotalView。 它有一个陡峭的学习曲线(它绝对可以更直观),但它是我曾经在任何平台上使用过的最好的C ++debugging器,并且可以扩展到以自定义方式反思对象(从而允许您查看STL列表作为对象的实际列表,而不是一堆混乱的内部数据成员等)

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

与eclipse gdb前端相似的是emacs前端,与emacs IDE紧密相连。 如果你已经使用emacs,你会喜欢它:

GDB Emacs前端

DDD是gdb的GNU前端: http : //www.gnu.org/software/ddd/

现在,Qt Creator-on-Linux与C ++的Visual Studio-on-Windows无疑是一致的。 我甚至在debugging器方面说得更好。

我已经尝试了gdb的几个不同的guis,并发现DDD是他们更好的。 虽然我不能评论其他,非GDB的产品为Linux我已经在其他平台上使用了一些其他debugging器。

gdb执行你希望列表中的大部分内容。 DDD给他们一个更好的前线。 例如,线程切换变得更简单。 设置断点与您所期望的一样简单。

你也可以得到一个cli窗口,以防止你想要做的事情变得模糊。

DDD的一个特点突出了我使用的其他debugging器之上的数据“graphics”。 这使您可以显示和排列结构,对象和内存作为可拖动的框。 双击一个指针将打开带有可视链接的解除引用的数据回到父级。

在这个列表中缺less一个IDE,它是非常高效的(我已经在很多C / C ++项目中使用它,没有任何问题): Netbeans 。

作为熟悉Visual Studio的人,我已经看过几个开源的IDE来代替它,而KDevelop则是最接近IMO的东西,Visual C ++的人可以坐下来开始使用。 当你在debugging模式下运行项目时,它使用gdb,但是kdevelop几乎处理了整个事情,所以你不必知道它是gdb; 你只是单步或分配手表的variables。

不幸的是,它仍然不如Visual Studio Debugger。

我用KDbg(只在KDE下工作)。

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

在UNIX系统上, KDevelop是好的,但我使用KDbg,因为它易于使用,并且还可以与KDevelop未开发的应用程序一起使用。

Eclipse在两个平台上都很好。

在Windows上,有一个名为Wascana Desktop Developer的很好的软件包,它是Eclipse CDT和MinGW的全部打包和预configuration,以最小的痛苦。 它是我在Windows上开发GNU代码的最好的东西。

我已经使用了所有这些debugging器,没有一个像MS Dev Studio一样好。 Eclipse / Wascana可能是最接近的,但是它有一些限制,比如你不能进入DLL,在检查variables方面做得不是很好。

你有没有看过DS-5debugging器 ?

有一个付费版本,其中包括许多有用的function,但你也可以免费使用社区版(这也是非常有用的,尤其是对于embedded式系统)。

使用eclipse在真实设备上debuggingAndroid应用程序时,我对此工具有着积极的经验。

g ++产生的debugging信息会受到很大程度的限制。 Emacs提供了一个gdb的接口,可以让你通过工具栏/菜单控制它,并在单独的窗口中显示数据,以及直接键入gdb命令。 Eclipse的CDT提供了类似的工具。 我听说过Anjuta和Code :: Blocks,但从来没有使用过它们。

VisualGDB是另一个Visual Studio插件,用于在Linux和embedded式平台上开发和debugging应用程序。

KDevelop工作得很好。

你用cygwin gdb试过了gdb -w吗? 它被认为具有相当好的窗口界面。

我发现的唯一问题是,在我现在的机器上,直到我安装了ddd之后,才发现这个问题。 我怀疑它需要安装ddd时安装的tcltk。

代码:块 C + + IDE有一个graphics包装,有一些你想要的function,但没有像VS的力量。

最新版本的Geany支持它(只在Linux上)

如果您正在Visual Studio下查找gdb,请检查WinGDB 。

在过去的15个月中,我使用洞察力(FC6)。 这不是很好,它是用Tcl / Tk编写的,但它很简单而且有用。 DDD具有相似的质量/效用,但有点难以使用(各种GUI陷阱和遗漏)。 我也尝试将gdb与我的IDE,SlickEdit整合。 它工作正常(我玩了4个小时),但我不喜欢GUI上下文切换。 我在debugging时喜欢我的IDE保持不变; 在Windows上,我使用SlickEdit for IDE和Visual Studio Debugger进行debugging。 所以从3:Insight,DDD和SlickEdit,Insight是我的第一select,我用它> 95%的时间,命令行gdb和DDD组成另外5%。 如果我有机会,我会在某个时候评估Eclipse,我的工作PC似乎没有足够的内存(仅1GB)来运行Eclipse。

我也听过很多对TotalView的赞誉,包括在面试中的第一手。 我在2008年底获得了对我们公司的评估,但是最终我们并没有按照gdb的标准来满足我们的需求。 它是免费的,无处不在。

使用www.zero-bugs.com/零debugging器,它需要来自gcc的C ++ 0x支持

我正在寻找一个debugging器来逐步执行正在运行的程序。 说:附。 这个程序是用eclipse编译的,但是也许是因为一些multithreading的障碍,没有源文件。 随你。

我对NetBeans非常满意。

  • 从菜单中select[debug] – > Attach Deugger …
  • 作为进程select了一个debugging
  • 作为项目[新项目]

现在窗户失望了,你什么都看不到。 脱离过程。 阅读广场“停止”帮助。

  • 从项目导入源例如文件夹。 ” … / MyProject的/ src目录
  • 现在它出现在你的项目中,你可以设置断点。
  • 再次ttachdebugging器
  • select了进程debugging。
  • 如果程序到达下一个断点,debugging器应该停止。

去[窗口] – > [debugging] – >你的窗口会变得非常舒适。