GUI 调试器和终端调试器之间的区别

fob*_*122 5 c++ debugging

像 Eclipse 这样的 GUI 调试器有哪些优点?使用 gdb 等命令行调试器有哪些优点?业界是否使用命令行调试器?如果是这样,人们在什么情况下使用命令行调试器?

yan*_*yan 3

我通常使用 gdb,但我能立即想到一些优点:

  • 作为命令行,调试远程系统上的二进制文件就像打开 ssh 连接一样简单。
  • 强大的脚本支持,以及每个断点运行许多命令的能力(请参阅continue关键字)
  • 更短的启动时间和更快的开发周期。
  • 复制和粘贴命令和可定义函数,让您更轻松地重复常用命令
  • gdb 还采用定义明确的协议,因此您可以调试在许多不起眼的硬件和内核上运行的代码。
  • 从长远来看,输入短命令比使用 GUI 更短、更高效(在我看来)。

但是,如果您使用的是以前从未使用过的系统或运行时,那么从一开始就使用可视化调试器会更容易上手。此外,将调试器与 IDE 紧密集成(如果您使用的话)可以大大提高工作效率。

可视化调试器和命令行不必完全分开,gdb 有可视化前端,例如 DDD。(但是我不使用 DDD,因为它感觉非常混乱和过时。但它确实存在。XCode 还包装了 gdb 以提供调试支持)