本文介紹了一些常見的優秀調試工具及其亮點。
代碼調試時,工具很重要,因為某種程度上,它能決定我們是否可以快速修復代碼中的問題。以前,調試頗具挑戰。由于缺乏可靠的調試器,開發人員不得不使用一些特殊技巧。
例如,在調試移動應用和 Web 站點時,你需要在桌面電腦上重現問題,然后使用 Chrome 開發者工具或其他類似的工具集。但是,這些技巧并不是那么有效,你必須要在桌面瀏覽器和移動設備間不斷切換。而今天,我們有了一個強大的工具套件,它允許我們就像運行本地應用那樣在不同的設備上調試有缺陷的代碼。最重要的是,這些遠程調試工具不僅解決了調試方面所面臨的挑戰,還加強了開發團隊間的協作。
1. Rookout
Rookout 是一個創新性的工具,它提升了調試過程的敏捷性。它可以調試 serverless 和容器化應用中的 JVM、Node.JS 和 Python 代碼。
https://www.rookout.com/
它很棒的一點在于rookout允許用戶快速且安全地調試 staging 和生產環境的應用。它能在幾秒鐘之內提供所有需要的數據,消除了冗長且復雜的調試過程。
Rookout 可以按需提供數據,確保開發人員能理解和調試代碼中所存在的問題,無需編碼、重新部署和重新啟動應用。
借助 Rookout,我們可以遠程調試實時的 Electron 應用。Rookout 的可共享接口允許開發者在棘手的 Electron 應用程序中設置不間斷的斷點(與常規端點類似,只不過這種端點不接觸代碼,能讓我們在不停止或中斷應用的情況下,獲取代碼中的數據)。
https://www.rookout.com/blog/remote-debugging
借助該工具,我們可以完整地看到應用性能,這樣就能跟蹤問題并開發對應的修復程序。Rookout 可以讓這一切變成現實,而且無需在終端用戶上安裝任何額外軟件。
亮點
易于上手起步;
與 Git 無縫集成;
支持與一系列工具的集成,如 Slack、Datadog、Sentry、Sumologic 等;
交互跟蹤和屏幕共享功能;
實時提供全面的調試數據。
2. Visual Studio Code
Visual Studio Code 一直是每個使用.NET 開發人員的首選。它有大量的特性來實現本地和遠程調試。借助該工具,我們可以設置條件端點和日志點。
它還允許我們探查變量。對于遠程調試,我們需要安裝 VS code 遠程開發擴展包。這個包有三個擴展,它們提供了啟動、監控和加速遠程調試循環的所有內容。
https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack
亮點
免費試用,跨平臺;
有微軟支持的高度活躍的開發社區;
集成了 Git 版本控制;
用來實現工作流增強的大量擴展和定制選項;
非常棒的自動化代碼檢查和代碼顏色高亮。
3. RubyMine
RubyMine 是一個強大的、智能的跨平臺 IDE,它允許我們調試 Ruby on Rails、CoffeeScript、JavaScript、CSS、ERB 和 HAML 等,其優秀的內置調試器允許我們輕松地設置斷點和定義命中條件。
https://www.jetbrains.com/ruby/
JetBrains 的 RubyMine 提供了兩種方式來調試在遠程設備上運行的應用。首先,你可以添加遠程 Ruby 解釋器并配置本地和遠程項目文件的映射,然后啟動調試會話。
https://www.jetbrains.com/help/ruby/configuring-language-interpreter.html#add_remote_ruby_interpreter
或者,你也能在遠程設備上運行應用,然后添加 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 代碼的編輯、測試、調試等功能。
https://www.zend.com/downloads/zend-studio-web-debugger
它與 Zend Server 進行了緊密的集成,因此創建了一個完整的 PHP 環境,可以更容易地分析在 staging 和生產環境中探測到的問題。
https://en.wikipedia.org/wiki/Zend_Server
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。
http://winpdb.org/
這個調試工具支持智能斷點、命名空間修改、多線程、嵌入式調試以及加密通信。對于遠程調試功能來講,我們需要將 rpdb2.py(Winpdb 的命令行調試器)復制到遠程機器上。
完成之后,使用調試器在遠程機器啟動 Python 腳本。在本地機器上,啟動 GUI 并關聯要調試的腳本。此時,我們可以使用遠程設備腳本的基礎名稱或完整路徑。關于使用 WinPDB 調試 Python 腳本的更多知識,可以參考該教程。
http://winpdb.org/tutorial/WinpdbTutorial.html
亮點
支持多線程調試;
支持遠程調試的加密通信;
比 PDB 更快;
易于使用的 GUI,支持斷點、棧、變量探測等功能。