简单地说:有没有人知道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构建的,但由于可能存在一些多线程障碍,没有源文件。过什么。

我用NetBeans很舒服。

[debug] from menu ->附加调试器… 当进程选择要调试的程序时 As project[新项目]

现在窗户消失了,你什么也看不见。脱离这个过程。Read方形的“Stop”会有所帮助。

从项目中导入源代码,例如文件夹。“……/ MyProject / src 现在它出现在您的项目中,您可以设置断点。 同样是ttach调试器 选择要调试的流程。 如果程序到达下一个断点,调试器应该停止。

打开[window] -> [Debugging] ->您的窗口是否使您感到舒适。

其他回答

Qt Creator似乎是个好东西。一位同事向我展示了一种调试的方法:

Create a new project, "Import of Makefile-based Project". Point it to your root project folder (it will index sources under it, and it is impressively fast). Go to project settings and add a run configuration, then specify the executable you want to debug, and its arguments. Qt Creator seems to insist on building your project before debugging it. If you don't want that, or don't use make, just go to projects -> build (Left panel), then, on the right panel in "Build Steps", remove all the steps, including the step by default when you created the project.

对于调试一个我已经编译好的应用程序来说,这似乎有点多,但这是值得的。调试器以类似于Visual Studio的方式显示线程、堆栈和局部变量,甚至使用许多相同的键盘快捷键。它似乎可以很好地处理模板,至少std::string和std::map。附加到现有进程和核心转储似乎是受支持的,尽管我还没有测试它。

请记住,我现在使用它不到一个小时,但迄今为止我印象深刻。

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

我已经为gdb尝试了几个不同的gui,发现DDD是其中更好的一个。 虽然我不能评论linux上的其他非gdb产品,但我已经在其他平台上使用了许多其他调试器。

GDB可以完成您愿望清单中的大部分工作。DDD让他们看起来更漂亮。例如,线程切换变得更加简单。设置断点就像您期望的那样简单。

如果你想做一些模糊的事情,你也可以得到一个cli窗口。

DDD比我使用过的任何其他调试器都突出的一个特性是数据“绘图”。这允许你显示和安排结构,对象和内存作为拖拽框。双击一个指针将打开被解除引用的数据,并带有指向父节点的可视链接。

您将找不到任何可以与Visual Studio调试器的原始功能竞争的覆盖GDB的东西。它太强大了,而且在IDE中集成得太好了。

对于Linux的替代品,如果您喜欢自由软件,可以尝试DDD。

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