请考虑商业和免费调试器。还想看看每个人的利弊。
11 回答
我真的很喜欢EDB(Evan 的调试器)。
它有一种很好的“OllyDBG 感觉”,这很棒,因为当我还在 Windows 平台上工作时,我经常使用它。
EDB(Evan's Debugger)是一个基于 QT4 的二进制模式调试器,其目标是具有与 OllyDbg 同等的可用性。它使用插件架构,因此可以轻松添加新功能。当前版本适用于 Linux,但未来版本将针对更多平台。
(来源:softpedia.com)
(可点击)
nemiver 是 gdb 的一个很好的前端(看起来比 ddd imo 更好,尽管它可能还没有那么先进)。
在 Linux 上,大多数调试都是通过 GDB 处理的。然而,正如其他人所提到的,没有必要直接使用 GDB。存在多种选择,其中一些在以前的答案中提到:
- Emacs(有一个 GDB 前端)
- DDD(基于 Motif 的、有点古怪的图形界面,具有出色的数据检查功能)
- Nemiver(基于 GTK 的前端)
- 蚀
- 代码::块
- NetBeans 也可以做到
- Anjuta(侏儒 IDE)
其中,我使用过 DDD 并尝试过 Nemiver。当时,Nemiver 缺乏功能,因此对我来说效果不佳。不过那是两年前的事了。我经常使用 DDD,发现它的数据查看非常好,值得使用它的 UI。不过,我也经常只从命令行使用 gdb。
emacs 也有一个很棒的 gdb 前端。
Sun dbx
Studio 的 Sun 也可以在 Linux 中工作。
对于调试汇编代码,有ALD。
在这里走上一个台阶,但如果你愿意的话,Sun 的 MDB 非常棒,尤其是在你使用大量模板和线程代码的情况下。如果这是您的情况,它会击败 GDB。另一方面,如果您只需要断点,那就不是很好了,在这种情况下我会坚持使用 GDB。
UndoDB
听起来很有趣,但是它允许“反向步进”;它很贵,而且我很适应gdb
,所以我不太可能改变。我见过的其他人没有吸引我远离我所知道的环境所需的额外功能。
没有提到的 GDB 的一个很好的前端是Insight。