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

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