2020年最強大的遠程調試工具

本文最初發表於freeCodeCamp網站,經作者Anton Lawrence授權,由InfoQ中文站翻譯分享。

代碼調試時,工具很重要,因爲某種程度上,它能決定我們是否可以快速修復代碼中的問題。以前,調試頗具挑戰。由於缺乏可靠的調試器,開發人員不得不使用一些特殊技巧。

例如,在調試移動應用和 Web 站點時,你需要在桌面電腦上重現問題,然後使用 Chrome 開發者工具或其他類似的工具集。但是,這些技巧並不是那麼有效,你必須要在桌面瀏覽器和移動設備間不斷切換。而今天,我們有了一個強大的工具套件,它允許我們就像運行本地應用那樣在不同的設備上調試有缺陷的代碼。最重要的是,這些遠程調試工具不僅解決了調試方面所面臨的挑戰,還加強了開發團隊間的協作。

1.Rookout

Rookout是一個創新性的工具,它提升了調試過程的敏捷性。它可以調試serverless和容器化應用中的JVM、Node.JS和Python代碼。

Rookout非常棒的一點在於它允許用戶快速且安全地調試staging和生產環境的應用。它能夠在幾秒鐘之內提供所有需要的數據,消除了冗長和複雜的調試過程。

Rookout能夠按需提供數據,確保了開發人員可以理解和調試代碼中所存在的問題,不需要編碼、重新部署和重新啓動他們的應用。

藉助Rookout,我們可以遠程調試實時的Electron應用。Rookout的可共享接口允許開發者在棘手的Electron應用程序中設置不間斷的斷點(與常規端點類似,只不過這種端點不接觸代碼,能夠讓我們在不停止或中斷應用的情況下,獲取代碼中的數據)。

藉助該工具,我們可以完整地看到應用的性能,這樣就可以跟蹤問題並開發對應的修復程序。Rookout能夠讓這一切變成現實,而且不需要在終端用戶上安裝任何額外的軟件。

亮點

  • 易於上手起步;
  • 與Git無縫集成;
  • 支持與一系列工具的集成,如Slack、Datadog、Sentry、Sumologic等;
  • 交互跟蹤和屏幕共享功能;
  • 實時提供全面的調試數據。

2.Visual Studio Code

Visual Studio Code始終是每個使用.NET開發人員的首選。它有大量的特性來實現本地和遠程調試。藉助該工具,我們可以設置條件端點和日誌點。

它還允許我們探查變量。對於遠程調試,我們需要安裝VS code遠程開發擴展包。這個包有三個擴展,它們提供了啓動、監控和加速遠程調試循環的所有內容。

亮點

  • 免費試用,跨平臺;
  • 有微軟支持的高度活躍的開發社區;
  • 集成了Git版本控制;
  • 用來實現工作流增強的大量擴展和定製選項;
  • 非常棒的自動化代碼檢查和代碼顏色高亮。

3.RubyMine

RubyMine是一個強大的、智能的跨平臺IDE,它允許我們調試Ruby on Rails、CoffeeScript、JavaScript、CSS、ERB和HAML等,其優秀的內置調試器允許我們輕鬆地設置斷點和定義命中條件。

JetBrains的RubyMine提供了兩種方式來調試在遠程設備上運行的應用。首先,你可以添加遠程Ruby解釋器並配置本地和遠程項目文件的映射,然後啓動調試會話。

或者,你也可以在遠程設備上運行應用,然後添加Ruby解釋器。

完成之後,配置文件之間的映射並綁定到運行中的進程上。在調試無法在IDE直接啓動的應用時,這一點尤爲重要。

這個工具另外很棒的一點在於它允許我們同時啓動多個調試進程。

亮點

  • RubyMine基於強大的intelliJ IDEA平臺;
  • 對Ruby相關的框架和技術提供了良好的支持;
  • 自動完成特性非常棒;
  • 與Git集成地非常好;
  • 支持多個插件;
  • 與Rails無縫集成。

4.PyCharm

PyCharm是JetBrains爲Python開發的一個健壯的IDE。這個智能的代碼編輯器提供了遠程開發的功能,包括在虛擬機和遠程主機上運行、測試、調試和部署應用的能力。

調試器提供了多種斷點、幀視圖、監視、步進模式、遠程解釋器以及一個調試控制檯。

PyCharm提供了很多令人驚歎的特性,包括複雜場景的自動完成、優秀的重構支持以及與其他工具的無縫集成,如Django、IPython、Docker、Vagrant和Pytest。

除此之外,PyCharm還是一個非常棒的跨平臺開發工具。除了Python,它還支持JavaScript、Cython、CoffeeScript、TypeScript、SQL、HTML/CSS、Node.js、AngularJS等。

亮點

  • 出色在IDE中連接多數據庫進行查詢的功能;
  • 搜索和安裝包非常容易;
  • 自動化的代碼生成;
  • Git可視化;
  • 動態展示代碼錯誤,使其易於修復。

5.GDB

GDB可以高效地調試另外一臺機器上的程序。爲了進行遠程調試,我們需要在宿主機上運行GDB工具。另外,需要在目標系統上運行gdbserver,這樣兩個工具就可以通過網絡或者GDB遠程序列化協議的serial line進行通信。

GDB/gdbserver的遠程調試有兩個配置選項。首先,涉及到使用遠程GDB自動構建並上傳應用代碼到遠程機器。

第二個選項是在應該使用可執行文件的地方,使用GDB的遠程調試功能。

亮點

  • 易於使用和跟蹤代碼中的錯誤;
  • 跨平臺並提供了廣泛的語言支持;
  • 高效的核心dump分析。

6.Eclipse

Eclipse是一個適用於Java開發的知名IDE,同時還支持Python、Ruby、C#和PHP等語言。Eclipse IDE具有開發和調試的高級特性,使其成爲一個全面的工具。

Eclipse最令人印象深刻的特性之一就是平臺的調試視圖,它能夠展現詳細的調試信息,如斷點、變量、調用棧以及線程。

藉助Eclipse,我們可以單步執行程序、掛起和恢復線程、計算表達式以及探查表達式的值。在Eclipse上管理遠程調試配置非常簡單直接,這使得該工具在開發者中更受歡迎。

亮點

  • 自動化的代碼完成;
  • 對重構的良好支持;
  • 優秀的導航功能;
  • 有助於進行語法檢查,實現整潔和高效的代碼;
  • Git集成。

7.Zend Studio調試器

Zend Studio是一個專業的IDE,支持PHP代碼的編輯、測試、調試等功能。

它與Zend Server進行了緊密的集成,因此創建了一個完整的PHP環境,可以更容易地分析在staging和生產環境中探測到的問題。

Zend還提供了一個PHP擴展,用戶可以將其安裝到Web服務器上以調試PHP腳本。使用Zend進行調試非常容易,你只需要打開源碼、在項目中設置斷點並運行調試會話即可。

Zend上的遠程調試可以通過三種方式實現。第一個方案是使用Zend Studio上的Debug URL功能。

其次,你可以使用Zend Studio中的Debug as Web Page功能。最後,還可以使用Firefox或Chrome上的Zend瀏覽器工具欄。

亮點

  • 能夠通過簡單的幾個按鍵篩選項目文件;
  • 高效、快速的平臺;
  • 廣大的社區支持;
  • 非常適合構建和調試PHP應用;
  • 該框架非常靈活。

8.WinPdb

WinPdb是一個非常棒的Python調試器,能夠很好地在Windows、Mac OS和Linux系統上運行。它同時兼容 Python 2.x和Python 3.x。

這個調試工具支持智能斷點、命名空間修改、多線程、嵌入式調試以及加密通信。對於遠程調試功能來講,我們需要將rpdb2.py(Winpdb的命令行調試器)複製到遠程機器上。

完成之後,使用調試器在遠程機器啓動Python腳本。在本地機器上,啓動GUI並關聯要調試的腳本。此時,我們可以使用遠程設備腳本的基礎名稱或完整路徑。關於使用WinPDB調試Python腳本的更多知識,可以參考該教程

亮點

  • 支持多線程調試;
  • 支持遠程調試的加密通信;
  • 比PDB更快;
  • 易於使用的GUI,支持斷點、棧、變量探測等功能。

英文原文:

Top Remote Debugging Tools in 2020

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章