GUI调试器(如Eclipse)和命令行调试器(如gdb)有哪些优点?工业界是否使用命令行调试器?如果是,人们在什么情况下使用命令行调试器?
我通常使用gdb,但我能想到的一些优点是:
continue
关键字)但是,如果您在一个之前从未使用过的系统或运行时旁边,则使用可视化调试器可能更容易上手。此外,如果您使用IDE,则将调试器与IDE紧密集成可以大大提高生产力。
可视化调试器和命令行调试器不必完全分离,例如DDD等工具可以为gdb提供可视化界面。(我不使用DDD,因为它感觉非常笨拙和过时。但它确实存在。XCode也使用gdb进行调试支持)
命令行调试器适用于调试远程系统(特别是当连接速度较慢时),对于性能较低或没有X服务器/图形卡的系统也很有用。CLI调试器还用于快速分析或核心转储和SIGSEGV(它们启动更快)。命令行调试器更具可移植性,它们几乎安装在每个系统上(或可以轻松安装,甚至可以从网络/闪存驱动器启动)。
我认为命令行可以用于没有源代码的程序,而图形化调试器更适用于具有复杂数据结构/类的项目。
另一个情况是命令行调试器更容易自动化,例如,我有一个shell脚本,使用gdb对程序进行完整的调用图记录。很难自动化图形调试器。
基本上,根据调试器的显示进行有意义的比较是不可能的。喜欢命令行的人可能会使用文本模式、命令驱动的调试器。喜欢图形用户界面的人可能会使用图形化、菜单驱动的调试器。
几乎唯一需要真正强烈技术动机去选择其中一种的情况是当你在调试窗口系统时。例如,如果你正在尝试调试 X 服务器本身,那么依赖于功能性 X 服务器的调试器就不能很好地工作。