Linux C ++调试器

时间:2009-01-12 18:13:14

标签: c++ linux gdb debugging

我正在寻找完美的Linux C ++调试器。我不指望成功,但搜索应该是有用的。

我是一个非常有能力的gdb用户,但STL和Boost很容易破坏我的调试技巧。这并不是说我无法进入数据结构的内部,而是需要很长时间才能找到另一种方式(“当有疑问时,将其打印出来”)。

gdb的宏语言很奇怪,不太适应。只需查看stanford gdb utils的代码即可打印出stl结构。

简而言之,我对自己拥有的东西感到不满。

我最近偶然发现Zero Bugs。它看起来像一颗银弹。目前Zero Bugs用户对此有何看法?

有没有人找到Linux C ++调试器问题的其他好方法?

10 个答案:

答案 0 :(得分:10)

gdb的开发分支(gdb的Project Archer的一部分)向gdb添加了Python支持(以替换gdb的宏)。有一系列博客文章starting here广泛涵盖了启用Python的gdb入门,并提供了几个使用Python来定义新的gdb命令和漂亮的C ++数据结构打印的教程。

答案 1 :(得分:4)

如果你不介意付费,UndoDB是惊人的。可逆功能比GDB快得多。 http://www.undo-software.com/

答案 2 :(得分:2)

有一些简单的脚本允许您从GDB转储STL结构。

看看here

答案 3 :(得分:1)

您可以尝试使用gdb 6.8的NetBeans IDE 6.5,它功能非常强大! http://www.netbeans.org/downloads/index.html

答案 4 :(得分:1)

ddd(数据显示调试器)相当不错......它基本上是一个可视化的gdb ....

答案 5 :(得分:1)

我使用以下环境:

http://ec-lang.org/

这是eC语言的完整开发环境。

但是,您可以使用只包含c或c ++文件的项目,而不使用任何特定于eC的文件,并使用IDE构建和调试它们。

这是你在Linux下获得“Borland C”体验的最接近的。

可以使用以下命令在Ubuntu / Debian上安装它:

sudo apt-get install ecere-sdk

答案 6 :(得分:0)

我暂时没有在Linux上进行C ++开发,但是当我做了KDevelop的调试器时我运气好了。没什么革命性的,但它可以让你快速探索你正在寻找的对象属性。

答案 7 :(得分:0)

尝试ddd

答案 8 :(得分:0)

如果您正在寻找IDE类型的调试器而不是命令行调试器,则可以使用Eclipse逐步执行C和C ++代码。它并不完美,但我发现它适用于已经熟悉IDE调试工具的人。

我也偏爱Valgrind来检测内存错误。

答案 9 :(得分:0)

Recentg gdb(例如版本8.1)和g++(例如,GCC 7,2018年2月)能够通过Python脚本调试标准C ++容器。