2020年非常強(qiáng)大的遠(yuǎn)程調(diào)試工具
本文介紹了一些常見的優(yōu)秀調(diào)試工具及其亮點(diǎn)。
代碼調(diào)試時(shí),工具很重要,因?yàn)槟撤N程度上,它能決定我們是否可以快速修復(fù)代碼中的問題。以前,調(diào)試頗具挑戰(zhàn)。由于缺乏可靠的調(diào)試器,開發(fā)人員不得不使用一些特殊技巧。
例如,在調(diào)試移動(dòng)應(yīng)用和 Web 站點(diǎn)時(shí),你需要在桌面電腦上重現(xiàn)問題,然后使用 Chrome 開發(fā)者工具或其他類似的工具集。但是,這些技巧并不是那么有效,你必須要在桌面瀏覽器和移動(dòng)設(shè)備間不斷切換。而今天,我們有了一個(gè)強(qiáng)大的工具套件,它允許我們就像運(yùn)行本地應(yīng)用那樣在不同的設(shè)備上調(diào)試有缺陷的代碼。最重要的是,這些遠(yuǎn)程調(diào)試工具不僅解決了調(diào)試方面所面臨的挑戰(zhàn),還加強(qiáng)了開發(fā)團(tuán)隊(duì)間的協(xié)作。
1. Rookout
Rookout 是一個(gè)創(chuàng)新性的工具,它提升了調(diào)試過程的敏捷性。它可以調(diào)試 serverless 和容器化應(yīng)用中的 JVM、Node.JS 和 Python 代碼。
https://www.rookout.com/
它很棒的一點(diǎn)在于rookout允許用戶快速且安全地調(diào)試 staging 和生產(chǎn)環(huán)境的應(yīng)用。它能在幾秒鐘之內(nèi)提供所有需要的數(shù)據(jù),消除了冗長且復(fù)雜的調(diào)試過程。
Rookout 可以按需提供數(shù)據(jù),確保開發(fā)人員能理解和調(diào)試代碼中所存在的問題,無需編碼、重新部署和重新啟動(dòng)應(yīng)用。
借助 Rookout,我們可以遠(yuǎn)程調(diào)試實(shí)時(shí)的 Electron 應(yīng)用。Rookout 的可共享接口允許開發(fā)者在棘手的 Electron 應(yīng)用程序中設(shè)置不間斷的斷點(diǎn)(與常規(guī)端點(diǎn)類似,只不過這種端點(diǎn)不接觸代碼,能讓我們在不停止或中斷應(yīng)用的情況下,獲取代碼中的數(shù)據(jù))。
https://www.rookout.com/blog/remote-debugging
借助該工具,我們可以完整地看到應(yīng)用性能,這樣就能跟蹤問題并開發(fā)對應(yīng)的修復(fù)程序。Rookout 可以讓這一切變成現(xiàn)實(shí),而且無需在終端用戶上安裝任何額外軟件。
亮點(diǎn)
- 易于上手起步;
- 與 Git 無縫集成;
- 支持與一系列工具的集成,如 Slack、Datadog、Sentry、Sumologic 等;
- 交互跟蹤和屏幕共享功能;
- 實(shí)時(shí)提供全面的調(diào)試數(shù)據(jù)。
2. Visual Studio Code
Visual Studio Code 一直是每個(gè)使用.NET 開發(fā)人員的首選。它有大量的特性來實(shí)現(xiàn)本地和遠(yuǎn)程調(diào)試。借助該工具,我們可以設(shè)置條件端點(diǎn)和日志點(diǎn)。
它還允許我們探查變量。對于遠(yuǎn)程調(diào)試,我們需要安裝 VS code 遠(yuǎn)程開發(fā)擴(kuò)展包。這個(gè)包有三個(gè)擴(kuò)展,它們提供了啟動(dòng)、監(jiān)控和加速遠(yuǎn)程調(diào)試循環(huán)的所有內(nèi)容。
https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack
亮點(diǎn)
- 免費(fèi)試用,跨平臺;
- 有微軟支持的高度活躍的開發(fā)社區(qū);
- 集成了 Git 版本控制;
- 用來實(shí)現(xiàn)工作流增強(qiáng)的大量擴(kuò)展和定制選項(xiàng);
- 非常棒的自動(dòng)化代碼檢查和代碼顏色高亮。
3. RubyMine
RubyMine 是一個(gè)強(qiáng)大的、智能的跨平臺 IDE,它允許我們調(diào)試 Ruby on Rails、CoffeeScript、JavaScript、CSS、ERB 和 HAML 等,其優(yōu)秀的內(nèi)置調(diào)試器允許我們輕松地設(shè)置斷點(diǎn)和定義命中條件。
https://www.jetbrains.com/ruby/
JetBrains 的 RubyMine 提供了兩種方式來調(diào)試在遠(yuǎn)程設(shè)備上運(yùn)行的應(yīng)用。首先,你可以添加遠(yuǎn)程 Ruby 解釋器并配置本地和遠(yuǎn)程項(xiàng)目文件的映射,然后啟動(dòng)調(diào)試會(huì)話。
https://www.jetbrains.com/help/ruby/configuring-language-interpreter.html#add_remote_ruby_interpreter
或者,你也能在遠(yuǎn)程設(shè)備上運(yùn)行應(yīng)用,然后添加 Ruby 解釋器。
完成后,配置文件之間的映射并綁定到運(yùn)行中的進(jìn)程上。在調(diào)試無法在 IDE 直接啟動(dòng)的應(yīng)用時(shí),這一點(diǎn)尤為重要。
這個(gè)工具另一個(gè)優(yōu)點(diǎn)在于它允許我們同時(shí)啟動(dòng)多個(gè)調(diào)試進(jìn)程。
亮點(diǎn)
- RubyMine 基于強(qiáng)大的 intelliJ IDEA 平臺;
- 對 Ruby 相關(guān)的框架和技術(shù)提供了良好的支持;
- 自動(dòng)完成特性非常棒;
- 與 Git 集成地非常好;
- 支持多個(gè)插件;
- 與 Rails 無縫集成。
4. PyCharm
PyCharm 是 JetBrains 為 Python 開發(fā)的一個(gè)健壯的 IDE。這個(gè)智能的代碼編輯器提供了遠(yuǎn)程開發(fā)的功能,包括在虛擬機(jī)和遠(yuǎn)程主機(jī)上運(yùn)行、測試、調(diào)試和部署應(yīng)用的能力。
調(diào)試器提供了多種斷點(diǎn)、幀視圖、監(jiān)視、步進(jìn)模式、遠(yuǎn)程解釋器以及一個(gè)調(diào)試控制臺。
PyCharm 提供了很多令人驚嘆的特性,包括復(fù)雜場景的自動(dòng)完成、優(yōu)秀的重構(gòu)支持以及與其他工具的無縫集成,如 Django、IPython、Docker、Vagrant 和 Pytest。
除此之外,PyCharm 還是一個(gè)非常棒的跨平臺開發(fā)工具。除了 Python,它還支持 JavaScript、Cython、CoffeeScript、TypeScript、SQL、HTML/CSS、Node.js、AngularJS 等。
亮點(diǎn)
- 出色在 IDE 中連接多數(shù)據(jù)庫進(jìn)行查詢的功能;
- 搜索和安裝包非常容易;
- 自動(dòng)化的代碼生成;
- Git 可視化;
- 動(dòng)態(tài)展示代碼錯(cuò)誤,使其易于修復(fù)。
5. GDB
GDB 可以高效地調(diào)試另外一臺機(jī)器上的程序。為了進(jìn)行遠(yuǎn)程調(diào)試,我們需要在宿主機(jī)上運(yùn)行 GDB 工具。另外,需要在目標(biāo)系統(tǒng)上運(yùn)行 gdbserver,這樣兩個(gè)工具就可以通過網(wǎng)絡(luò)或者 GDB 遠(yuǎn)程序列化協(xié)議的 serial line 進(jìn)行通信。
GDB/gdbserver 的遠(yuǎn)程調(diào)試有兩個(gè)配置選項(xiàng)。首先,涉及到使用遠(yuǎn)程 GDB 自動(dòng)構(gòu)建并上傳應(yīng)用代碼到遠(yuǎn)程機(jī)器。
第二個(gè)選項(xiàng)是在應(yīng)該使用可執(zhí)行文件的地方,使用 GDB 的遠(yuǎn)程調(diào)試功能。
亮點(diǎn)
易于使用和跟蹤代碼中的錯(cuò)誤;
跨平臺并提供了廣泛的語言支持;
高效的核心 dump 分析。
6. Eclipse
Eclipse 是一個(gè)適用于 Java 開發(fā)的知名 IDE,同時(shí)還支持 Python、Ruby、C# 和 PHP 等語言。Eclipse IDE 具有開發(fā)和調(diào)試的高級特性,使其成為一個(gè)全面的工具。
Eclipse 最令人印象深刻的特性之一就是平臺的調(diào)試視圖,它能夠展現(xiàn)詳細(xì)的調(diào)試信息,如斷點(diǎn)、變量、調(diào)用棧以及線程。
借助 Eclipse,我們可以單步執(zhí)行程序、掛起和恢復(fù)線程、計(jì)算表達(dá)式以及探查表達(dá)式的值。在 Eclipse 上管理遠(yuǎn)程調(diào)試配置非常簡單直接,這使得該工具在開發(fā)者中更受歡迎。
亮點(diǎn)
- 自動(dòng)化的代碼完成;
- 對重構(gòu)的良好支持;
- 優(yōu)秀的導(dǎo)航功能;
- 有助于進(jìn)行語法檢查,實(shí)現(xiàn)整潔和高效的代碼;
- Git 集成。
7. Zend Studio 調(diào)試器
Zend Studio 是一個(gè)專業(yè)的 IDE,支持 PHP 代碼的編輯、測試、調(diào)試等功能。
https://www.zend.com/downloads/zend-studio-web-debugger
它與 Zend Server 進(jìn)行了緊密的集成,因此創(chuàng)建了一個(gè)完整的 PHP 環(huán)境,可以更容易地分析在 staging 和生產(chǎn)環(huán)境中探測到的問題。
https://en.wikipedia.org/wiki/Zend_Server
Zend 還提供了一個(gè) PHP 擴(kuò)展,用戶可以將其安裝到 Web 服務(wù)器上以調(diào)試 PHP 腳本。使用 Zend 進(jìn)行調(diào)試非常容易,你只需要打開源碼、在項(xiàng)目中設(shè)置斷點(diǎn)并運(yùn)行調(diào)試會(huì)話即可。
Zend 上的遠(yuǎn)程調(diào)試可以通過三種方式實(shí)現(xiàn)。第一個(gè)方案是使用 Zend Studio 上的 Debug URL 功能。
其次,你可以使用 Zend Studio 中的 Debug as Web Page 功能。最后,還可以使用 Firefox 或 Chrome 上的 Zend 瀏覽器工具欄。
亮點(diǎn)
- 能夠通過簡單的幾個(gè)按鍵篩選項(xiàng)目文件;
- 高效、快速的平臺;
- 廣大的社區(qū)支持;
- 非常適合構(gòu)建和調(diào)試 PHP 應(yīng)用;
- 該框架非常靈活。
8. WinPdb
WinPdb 是一個(gè)非常棒的 Python 調(diào)試器,能夠很好地在 Windows、Mac OS 和 Linux 系統(tǒng)上運(yùn)行。它同時(shí)兼容 Python 2.x 和 Python 3.x。
http://winpdb.org/
這個(gè)調(diào)試工具支持智能斷點(diǎn)、命名空間修改、多線程、嵌入式調(diào)試以及加密通信。對于遠(yuǎn)程調(diào)試功能來講,我們需要將 rpdb2.py(Winpdb 的命令行調(diào)試器)復(fù)制到遠(yuǎn)程機(jī)器上。
完成之后,使用調(diào)試器在遠(yuǎn)程機(jī)器啟動(dòng) Python 腳本。在本地機(jī)器上,啟動(dòng) GUI 并關(guān)聯(lián)要調(diào)試的腳本。此時(shí),我們可以使用遠(yuǎn)程設(shè)備腳本的基礎(chǔ)名稱或完整路徑。關(guān)于使用 WinPDB 調(diào)試 Python 腳本的更多知識,可以參考該教程。
http://winpdb.org/tutorial/WinpdbTutorial.html
亮點(diǎn)
- 支持多線程調(diào)試;
- 支持遠(yuǎn)程調(diào)試的加密通信;
- 比 PDB 更快;
- 易于使用的 GUI,支持?jǐn)帱c(diǎn)、棧、變量探測等功能。