2011-02-17 147 views
3

像Eclipse一樣,GUI調試器有什麼優勢,以及使用命令行調試器(如gdb)有什麼優勢?工業界是否使用命令行調試器?如果是這樣,人們使用命令行調試器的情況是什麼?GUI調試器和終端調試器之間的區別

+1

您可以爲終端調試器(有它們的用途,請參閱答案)的前端。相反是不正確的。使用gdb時,我個人的口味是使用命令行(或者emacs前端有時),因爲您很快就會習慣它。 – 2011-02-17 17:43:19

回答

2

我通常使用gdb的,但一些優勢,我能想到的把我的頭頂部:

  • 作爲命令行中,在遠程系統上調試二進制文件是打開ssh連接一樣簡單。
  • 偉大的腳本支持,並且能夠在每個斷點運行多個命令(請參閱continue關鍵字)
  • 啓動時間更短,開發週期更短。
  • 複製& pastable命令和讓你重複常用命令更容易
  • GDB還談到一個明確的協議,這樣你就可以調試代碼的大量晦澀的硬件和內核的運行自定義功能。
  • 從長遠來看,輸入短命令比在GUI中工作更短,效率更高(在我看來)。

但是,如果您在系統或運行時之前從未使用過,那麼使用可視調試器可以更容易從一開始就開始。此外,讓您的調試器與您的IDE緊密集成(如果使用的話)可以大大提高生產力。

可視調試器和命令行不一定是完全獨立的,有可視化的前端gdb,如DDD。 (但是我沒有使用DDD,因爲它感覺超級笨重和過時,但它確實存在,但XCode也包裝了gdb以支持調試)

1

命令行調試器適用於調試遠程系統(特別是連接速度較慢時),它對於低性能系統或沒有Xserver /圖形卡的系統也很有用。 CLI調試器也用於快速分析或核心轉儲和SIGSEGV(它們的啓動速度更快)。命令行調試器更加便攜,它們幾乎安裝在每個系統上(或者它們可以輕鬆安裝,甚至可以從網絡/閃存驅動器啓動)

我認爲命令行可用於沒有源代碼的程序,圖形調試器對於具有複雜數據結構/類的項目更好。

另一種情況是命令行調試器更易於自動化,例如,我有一個shell腳本,它使用gdb完成程序的完全調用圖形記錄。自動化圖形調試器將非常困難。

+0

您提到命令行不需要源代碼。你能詳細解釋一下嗎? – foboi1122 2011-02-17 17:50:49

0

根據調試器的顯示來進行有意義的比較實際上是不可能的。喜歡命令行的人可能會使用文本模式,命令驅動的調試器。喜歡GUI的人可能會使用圖形菜單驅動的調試器。

幾乎是唯一一次有真正強大的技術動機,如果你正在調試窗口系統。例如,如果您嘗試調試的版本是 X服務器本身,則使用依賴於具有功能X服務器的調試器不能很好地工作。